刚刚研究Oracel
有点不明白
为什么.NET给Oracel 一般的sql语句传参数是参数,前面要加冒号
例如:Select pha.po_header_id From po.po_headers_all pha Where pha.po_header_id=:xxxx;
OracleParameter olaParas=new OracleParameter(":xxxx",System.Data.OracleClient.OracleType.Number)
改成这样
例如:Select pha.po_header_id From po.po_headers_all pha Where pha.po_header_id=xxxx;
OracleParameter olaParas=new OracleParameter("xxxx",System.Data.OracleClient.OracleType.Number)
就会报错但是给Procedure等传参就不要加冒号
例如:
OracleParameter olaParas=new OracleParameter("p_CatogoryID", OracleType.Int32)
上面的参数传给Procedure是不会报错的
有点不明白
为什么.NET给Oracel 一般的sql语句传参数是参数,前面要加冒号
例如:Select pha.po_header_id From po.po_headers_all pha Where pha.po_header_id=:xxxx;
OracleParameter olaParas=new OracleParameter(":xxxx",System.Data.OracleClient.OracleType.Number)
改成这样
例如:Select pha.po_header_id From po.po_headers_all pha Where pha.po_header_id=xxxx;
OracleParameter olaParas=new OracleParameter("xxxx",System.Data.OracleClient.OracleType.Number)
就会报错但是给Procedure等传参就不要加冒号
例如:
OracleParameter olaParas=new OracleParameter("p_CatogoryID", OracleType.Int32)
上面的参数传给Procedure是不会报错的
解决方案 »
- sqlldr 的问题
- 下面的HQL语句,效率上有没有提升的空间,或者给一个具有同样功能的高效率HQL,急求高手赐教
- 求oracle语句,查询出表相同的数据,然后删除,急求在线等
- 权限模块的数据库设计
- ORACLE10G 数据库中如何建立200多个表空间?
- 我在安装完ora92要配置管理服务器,在创建一个新的资料档案库时有个错误!
- 高手请进,关于数据统计问题
- 一个打开的游标,我想在fetch第一行数据之前就想知道这个游标的记录总函数,如何做?
- 备份或导出生成活动却总不执行是怎么回事?
- SQL语言问题
- sqlldr 如何导入数组类型的数据?
- 问个问题:使用编程语言调用oracle的存储过程,参数如何传递?
OracleParameter olaParas=new OracleParameter(":xxxx",System.Data.OracleClient.OracleType.Number)--这个你是什么时候用的
可能是oralce中sql语句中的变量需要加:
OracleCommand.Parameters 属性
属性值
SQL 语句或存储过程的参数。默认为空集合。
备注
当 CommandType 属性设置为 StoredProcedure 时,CommandText 属性应设置为存储过程的名称。如果存储过程名称包含任何特殊字符,则可能会要求用户使用转义符语法。当调用 Execute 方法之一时,该命令将执行此存储过程。用于 Oracle 的 .NET Framework 数据提供程序在向由 CommandType.Text 的 OracleCommand 调用的 SQL 语句传递参数时不支持问号 (?) 占位符。在这种情况下,必须使用命名的参数。例如: SELECT * FROM Customers WHERE CustomerID = :pCustomerID
在 CommandType.Text 的 OracleCommand 调用的 SQL 语句中使用命名的参数时,参数名前面必须有一个冒号 (:)。但是,在存储过程或在代码的其他地方引用命名的参数时(例如,将 OracleParameter 对象添加到 Parameters 属性时),请不要在命名的参数前加上冒号 (:)。用于 Oracle 的 .NET Framework 数据提供程序自动提供冒号。