社区
.NET Framework
帖子详情
.NET使用ORACLE,ORA-01008: 并非所有变量都已关联
ucanmailme
2010-04-28 11:56:21
.NET连接ORACLE,执行SQL命令时,报这个错误。
同样的代码,在MYSQL是正常的。
郁闷。弄了N久,都没找到解决方法。
...全文
266
6
打赏
收藏
.NET使用ORACLE,ORA-01008: 并非所有变量都已关联
.NET连接ORACLE,执行SQL命令时,报这个错误。 同样的代码,在MYSQL是正常的。 郁闷。弄了N久,都没找到解决方法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hujinn
2010-10-22
打赏
举报
回复
我碰到的是"provider='OraOleDb.Oracle';" 改成这样就好了。。。。
lester19872007
2010-04-29
打赏
举报
回复
这楼主给分部地道!!!
ucanmailme
2010-04-29
打赏
举报
回复
试了一把。TMD,果然是NULL的问题。谢谢各位了。
lester19872007
2010-04-29
打赏
举报
回复
1、System.Data.OracleClient 需要 Oracle 客户端软件8.1.7 或更高版本
1)先在未安装Oracle客户端的电脑上安装Oracle的精简客户端
2)然后安装Microsoft Oracle .NET Data Provider
好了,现在可以使用System.Data.OracleClient链接了。
3、ora-01008 并非所有变量都已关联
使用Oracle数据库,服务器处请填写服务器的data source name,在oracle安装路径下tnsnames.ora文件中设置,加上:XX=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.11.18)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oa)
)
)
最后链接字符串可以为:Data Source={0}; user id={1};password={2}
3、ora-01008 并非所有变量都已关联
其实就是null值的问题,在参数最后,加上此语句,给所有的nul值改为DBNull.Value就好了,如下:
for (int i = 0; i < parameters.Length; i++)
{
if (parameters[i].Value == null)
{
parameters[i].Value = DBNull.Value;
}
}
zlz_212
2010-04-28
打赏
举报
回复
估计很可能是写代码人的疏忽
看来代码才知道问题...
xray2005
2010-04-28
打赏
举报
回复
1. OracleClient方式,是微软专门针对Oracle数据库开发的,仅在 .NET Framework 1.1 版中受支持。据说速度快、性能好,是推荐使用的方式。但根据我的经验,当Oracle数据库服务器端采用英文字符集比如 US7ASCII 时,客户端不管字符集如何设置,读出的中文都是乱码;若服务器端用中文字符集比如 ZHS16GBK ,则无乱码问题。
引用类库:System.Data.OracleClient.dll。
命名空间:System.Data.OracleClient。
常用类:OracleConnection、OracleCommand、OracleDataAdapter、OracleTransaction、OracleDataReader等。
典型连接字符串:“data source=oratest;user id=scott;password=tiger”(注意:可不指定 provider 驱动)。
2. OleDb方式,微软和Oracle公司各自提供了OleDb的驱动程序,使用方法的差别很少。不管Oracle服务器端用何字符集,读写中文均无乱码问题。
相同之处
命名空间:System.Data.OleDb。
常用类:OleDbConnection、OleDbCommand、OleDbDataAdapter、OleDbTransaction、OleDbDataReader等。
不同之处
引用类库:微软的只需要System.Data.dll;若用Oracle的驱动,虽然也只要引入System.Data.dll,但前提是首先安装Oracle针对.Net的数据访问组件。
连接字符串:与OracleClient方式相比,要添加一个provider,微软为“provider=MSDAORA.1;”,Oracle为“provider='OraOleDb.Oracle';”。
上面是我找到的资料。
不过。依据个人经验,最简单的方式是,在你SQL参数中,为NULL的字段赋值为DBNull.Value,而不是NULL。因为Oracle默认情况不能将NULL保存到可为空的字段中。
Oracle
11g服务器、客户端的安装和plsql developer(一次成功)
1.你能保证
Oracle
11g不出现错误吗? 2.你能保证
Oracle
11g 服务器安装不出现...你能保证plsql developer不出
ORA-
12541 TNS 无监听程序错误吗? 4.你知道
Oracle
11g安装服务器端,客户端,plsql developer都有哪些坑点吗?
19.3rac_生产RHEL7_
ORACLE
19C_安装详细实战步骤+打19.4补丁
官网下载openfiler,rhel7.5软件 下载
oracle
软件(包括19.3的rac安装包,19.4的补丁) 以上软件我都已经在视频里面做了下载地址说明 五课程纠错 1)rac的私有ip应该是不同的网段,我在视频中设置错误。 Ensure all ...
oracle
19c_oca_ocp_ocm实战
1.0.6修改
oracle
用户环境
变量
1.1 rhel7系统图形安装
oracle
19c单实例数据库 1.2 rhel7系统命令行安装 1.2.0命令行安装数据库软件 1.2.1...
Oracle
19cRAC集群到单节点DataGuard(2+1) 部署
通过本课程使学员掌握在Linux环境下的
Oracle
19c RAC集群 实时 迁移数据到异机单实例数据库,掌握集群到单节点DataGuard的部署过程。 课程讲解和演示整个DG部署和数据迁移的过程,包括以下几个大的步骤。 1 备库安装...
新手从零撸一个CLI命令行脚手架工具
并且也会带着大家推送自己开发完成的CLI工具到NPM线上仓库,供所有人下载安装
使用
。 整个课程,大喵会详细讲解所需要依赖的第三方模块包的具体
使用
,让同学们可以举一反三开发具备自身特色的CLI工具,最终大喵会运用...
.NET Framework
17,741
社区成员
24,334
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章