当前位置:编程学习 > C#/ASP.NET >>

关于vb.net执行oracle过程的问题

vb2012.net通过odp连接的oracle。
需要执行oracle过程,过程的入参中有date类型,vb.net中应该怎么传这个参数。
我试过使用oracledbtype.date和oracledbtype.vchar2都要报错。 --------------------编程问答-------------------- OracleType.DateTime 呢?
什么错? --------------------编程问答-------------------- 定义参数时oracledbtype里面只有date。
传入的值如果用vb.net的date类型(#16-09-13 11:00:00 AM#),执行过程时会报格式不正确;
传入的值如果转换为字符串格式format(now,"yyyy-MM-dd HH:mm:ss),执行过程时会报ora-1843:无效的月份。
--------------------编程问答-------------------- 日期型参数
#16-09-13 11:00:00 AM# 日期常量格式应该是月日年,哪来的16月?
字符型参数
应该用数据库的默认日期格式,而不是随意格式。
最好的方式是SP的参数定义为 varchar2,内部用 to_date() 函数显式还原。
--------------------编程问答-------------------- oracle11g默认的日期格式就是dd-mm-rr,也就是日-月-年。
而oracle的过程是应用系统定义好了的,不能随便改参数类型啊。
没想到微软和oracle之间的日期格式转换还这么麻烦? --------------------编程问答-------------------- 你根本没理解!
#16-09-13 11:00:00 AM# 是 VB.Net 的常量,和 Oracle 有什么关系?
既然 Oracle 默认为 dd-mm-rr,那么 format(now,"按日月年格式化")。 --------------------编程问答-------------------- Cmd_Procedure.Parameters.Add("Date_IN", OracleDbType.Date).Direction = ParameterDirection.Input
Cmd_Procedure.Parameters("Date_IN" ).Value = Now
执行时报错:输入字符串的格式不正确
如果
Cmd_Procedure.Parameters("Date_IN" ).Value = Now.ToString("yyyy-MM-dd HH:mm:ss")
执行时报错:ORA-1843: not a valid month --------------------编程问答-------------------- 请理解我5楼的回复! --------------------编程问答-------------------- ORACLE在vn.net中有时间这个类型啊,就是这个OracleType.DateTime,我正常都用这个调用,直接穿进去就可以了 --------------------编程问答--------------------
引用 8 楼 zhengfu 的回复:
ORACLE在vn.net中有时间这个类型啊,就是这个OracleType.DateTime,我正常都用这个调用,直接穿进去就可以了

我使用的是odp(oracle.DataAccess)连接的数据库,这里面是没有OracleType.DateTime的。
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,