求助:C#通过oracle提供的(ODP.net)方式批量添加、更改数据报错

问题描述

通过微软提供的OracleClient方式完全没问题,但改成oracle提供的OracleDataProviderfor.NET(ODP.net)方式报错DynamicSQLgenerationfailed.Eithernobasetableswerefoundormorethanone在Oracle.DataAccess.Client.OracleCommandBuilder.GetBaseTableName下面代码using(OracleConnectionoraConnection=newOracleConnection(Database.ConnectionString)){DataTabledt=null;//要插入或更改的数据stringselSql="selectdistinct*fromxxx";stringtableName="xxx";OracleDataAdapteradapter=newOracleDataAdapter(selSql,oraConnection);OracleCommandBuildercb=newOracleCommandBuilder(adapter);DataTabletemp=newDataTable(tableName);intcount=adapter.Fill(temp);if(temp.Rows.Count==0){//插入新记录for(inti=0;i<dt.Rows.Count;i++){DataRowdr=temp.NewRow();for(intj=0;j<dt.Columns.Count;j++){dr[temp.Columns[j].ColumnName]=dt.Rows[i][j];}temp.Rows.Add(dr);}}varcount2=adapter.Update(temp);//报错行adapter.UpdateBatchSize=1024;}

解决方案

解决方案二:
估计是oracle的ODP.net的版本和支持问题,我记得ODP.net相当挑环境的。

时间: 2024-11-16 17:07:39

求助:C#通过oracle提供的(ODP.net)方式批量添加、更改数据报错的相关文章

Oracle提供标准函数,对字符集名称及ID进行转换

oracle|标准|函数|转换 Oracle提供标准函数,对字符集名称及ID进行转换 SQL> select nls_charset_id('ZHS16GBK') from dual; NLS_CHARSET_ID('ZHS16GBK')--------------------------                       852 1 row selected. SQL> select nls_charset_name(852) from dual; NLS_CHAR--------

ORACLE提供的重要的包

前言 Oracle提供了几个包,它们可以用来完成很多任务,从内部进程通信到文件I/O,到在PL/SQL块中动态创建和执行SQL语句.所有这些包由SYS用户所拥有-当Oracle最初安装时两个用户中的一个,这些包中最重要的包括: DBMS_Alert 不用轮询就允许应用命名并发出警告条件信号的过程与函数 DBMS_DDL 允许获取PL/SQL程序内部一定数量的DDL语句的过程 DBMS_Describe 为存储过程与函数描述API的过程 DBMS_Job 管理BLOBs.CLOBs.NCLOBs与

【转】Orion - oracle提供的测试io性能的工具

Orion是oracle提供的测试io性能的工具.它可以用来模拟Oracle数据库IO,也可以用来仿 真ASM的条带化的功能. Orion可以支持下列IO负载 1. 小的随机的IO:OLTP的应用主要是随机的读写,大小和数据的块大小一样(一般是8K).这样的应用主要是关注的吞吐量是IOPS和一个请求的平均延时时间.Orion可以仿真一个随机IO负载.指定的读写百分比,指定的IO大小,指定的IOs,IOs是分布在不同的磁盘上. 2. 大的连续的IO:数据仓库的应用,数据装载,备份,和恢复会产生连续

connection-【求助】本地Oracle数据库连接不上

问题描述 [求助]本地Oracle数据库连接不上 系统报错: oracle.javatools.db.DBException: java.sql.SQLRecoverableException: IO 错误: The Network Adapter could not establish the connection at oracle.jdevimpl.db.adapter.CADatabaseFactory.createConnectionImpl(CADatabaseFactory.jav

asp.net 未在本地计算机上注册“OraOLEDB.Oracle”提供程序

问题描述 vs2013调试正常,通过iis访问ORACLE数据库,提示未在本地计算机上注册"OraOLEDB.Oracle"提供程序 解决方案 解决方案二:服务器上也要安装访问数据库的组件解决方案三:看看这篇文章:'OraOLEDB.Oracle'providerisnotregistered解决方案四:这里的讨论:OraOLEDB.Oracleproviderisnotregisteredonthelocalmachine

Oracle基础知识-Oracle不同的启动关闭方式

Oracle中不同启动和关闭方式的区别 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将周详介绍这些启动和关闭方式之间的区别连同他们各自不同的功能.一.启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager.从Oracle 8i以后,系统将Server Manager的任何功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭能够直接通过SQL*Plus来完成,而

oracle用户可以tnsping通、普通用户tnsping报错的问题

今天碰到了一个有趣的问题 oracle用户可以tnsping通,普通用户tnsping报错 用普通用户tnsping数据库的时候报 TNS-03505: Failed to resolve name 而用oracle用户tnsping数据库的时候却可以ping通 <34 linux-sit:/home/smsds>tnsping orarpt TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 1

Oracle设计表、批处理方式快速导入到数据库

环境 Oracle 11.2.0 + SQL Plus + PowerDesigner 15.1 问题 Oracle设计表.批处理方式快速导入到数据库 解决 1.首先使用PowerDesigner设计表结构.视图等

delphi用dbExpress中的TSQLConnection组件连接oracle数据报错!

问题描述 delphi用dbExpress中的TSQLConnection组件连接oracle数据报错! http://zhidao.baidu.com/question/2051755277318156387.html?quesup2&oldq=1