发布Oracle存储过程包c#代码生成工具(CodeRobot)
2006-07-31 17:53
781 查看
发布Oracle存储过程包c#代码生成工具(CodeRobot)
无可致否,代码生成器对于程序员的帮助是越来越大。网上出现了一些优秀的代码工具,比较出名的如:CodeSmith, MyGeneration。但我一直没有找到直接将oracle存储过程包转化为c#的工具或模板(有谁知道告知我啊非常感谢!:),故在工作中编写了CodeRobot这个小冬冬(下载),使用起来是比较方便的。以下简要说明一下使用方法:(1)生成的代码基于OracleBase类(用于数据库开闭及command参数预处理)。请将该类包含进工程。
(2)数据库连接字符串默认保存在工程的config配置文件中,如
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
<add key="ConnStr" value="data source=portal; user id=user; password=pass;"/>
(3)对于字符串类型的输出参数,在生成C#代码类似
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
AddCmdParamOut(cmd, "P_NAME", OracleType.VarChar, #length#);
的代码,请将#length#改成对应字段的实际长度
(4)对于游标类型的输出参数,在oracle中定义为:
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
type genrefcur is ref cursor;
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
procedure example(p_id int, p_cur out genrefcur);
则生成C#代码为:
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
public void EXAMPLE(long P_ID, out OracleDataReader P_CUR)
(5)使用代码如:
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/None.gif)
using (DbExample db = new DbExample)
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
db.FUNC1(..);
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
db.FUNC2(..);
![](http://surfsky.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
发表于 2005-12-21 10:19 Kevin Cheng 阅读(561) 评论(11) 编辑 收藏 引用 收藏至365Key 所属分类: 代码生成器
评论
大哥的工具真是不错
能否先告诉小弟,9i里的 存储过程的参数类型,参数名,输入输出参数等 怎么获取
参数类型,参数名,输入输出参数等
user_procedues 的列 没见哪个是参数信息的
井泉2 评论于 2005-12-21 13:11
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
求大哥,
告诉小弟,
我这几天找oracle的数据字典,找到了一些相关表就是,All_source
All_procedues,
可就是找不到参数的具体信息,参数类型,名称,和输入输出信息,
望大哥能指点迷津
井泉2 评论于 2005-12-21 13:20
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
在线等
井泉2 评论于 2005-12-21 13:20
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
还有一个困绕小弟的问题是,再包里面的存储过程,内部变量怎么不能声明,多个
只能一个,
(内部变量)
声明方法一:
begin Declare 变量名 类型;
声明方法二:
变量名 类型;
方法一只能声明一个,
方法二干脆抱错
井泉2 评论于 2005-12-21 13:25
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
在线等
井泉2 评论于 2005-12-21 15:40
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
昨天的23:59:59 秒怎么求??
井泉2 评论于 2005-12-21 16:03
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
工具不错
高海东 评论于 2005-12-21 20:03
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
在线等
井泉2 评论于 2005-12-22 08:39
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
USER_ARGUMENTS 原来是这个表
井泉2 评论于 2005-12-22 09:14
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
To 井泉2: 不好意思,我今天才看见你的留言,显然你已经找到你需要的答案了:)。我再贴一下,希望对有需要的人有帮助:
SQL> desc sys.argument$
名称 是否为空? 类型
-------------------------------------------------------------
OBJ# NOT NULL NUMBER
PROCEDURE$ VARCHAR2(30)
OVERLOAD# NOT NULL NUMBER
PROCEDURE# NUMBER
POSITION# NOT NULL NUMBER
SEQUENCE# NOT NULL NUMBER
LEVEL# NOT NULL NUMBER
ARGUMENT VARCHAR2(30)
TYPE# NOT NULL NUMBER
CHARSETID NUMBER
CHARSETFORM NUMBER
DEFAULT# NUMBER
IN_OUT NUMBER
PROPERTIES NUMBER
LENGTH NUMBER
PRECISION# NUMBER
SCALE NUMBER
RADIX NUMBER
DEFLENGTH NUMBER
DEFAULT$ LONG
TYPE_OWNER VARCHAR2(30)
TYPE_NAME VARCHAR2(30)
TYPE_SUBNAME VARCHAR2(30)
TYPE_LINKNAME VARCHAR2(128)
'------------------------------------------------------------
注:<1>若方法有个参数的ARGUMENT(参数名)为空,则该方法是存储函数
<2>参数为游标类型(OracleType.Cursor)的判断:TYPE# = 121
Kevin.C 评论于 2005-12-23 15:37
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
To 井泉2:
还有,你另外一个问题(存储过程内部参数的定义),不知道下面这段示例代码能不能帮助你:
procedure example_func(p_dept_id number)
is
v_year int := extract(year from add_months(sysdate,-1));
v_month int := extract(month from add_months(sysdate,-1)) ;
v_start_date date := trunc(sysdate, 'month') + 4;
begin
insert into assess_sheet
(
...
Kevin.C 评论于 2005-12-23 15:43
# re: 发布Oracle存储过程包c#代码生成工具(CodeRobot) 回复
相关文章推荐
- 发布Oracle存储过程包c#代码生成工具(CodeRobot)
- 代码生成工具CodeRobot 1.5版发布
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- [C#]一步一步开发自己的自动代码生成工具之五:DAL层模板
- .Net xsd工具生成C#代码的一些方式
- 发布一个生成按钮图片的工具 c#写的
- 用Pytohn写了一个根据表结构自动生成C#对像代码的小工具
- 简易数据库代码生成工具 V1.0 发布
- [C#]一步一步开发自己的自动代码生成工具之六:业务层模板
- 按Sybase的PowerDesigner工具设计的数据库模型 ---> 解析生成能兼容多种数据库的相应的C#底层代码
- 黄聪:C#代码生成工具:文本模板初体验 Hello,World!
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- C#.NET必备工具GhostDoc为代码生成注释文档
- [c#]一步一步开发自己的自动代码生成工具之一:获取sql2005的数据库表结构
- UML工具推荐 Poseidon版本 可以免费下载,自动生成代码 C++ Java C# VB.NET等 (来自德国汉堡的国际性建模软件开发商Gentleware AG的)
- C# 代码结构自动化生成文档工具开发
- 代码自动生成工具(二)-miniproto的c#库实现
- C# 代码生成工具 Millennials
- VS代码生成工具ReSharper发布8.1版本
- [C#]一步一步开发自己的自动代码生成工具之二:SQLServer字段与C#变量的对应转化