【99-在线等】顶者有分 ODP.NET 访问TimesTen 能够连接上 但是报异常“不支持该功能”!
ORACDLE服务器和TimesTen在一台电脑上! 环境已经配置好了 数据查询和插入都能同步 但是用C#代码访问的时候能够连接并打开连接 但是在用适配器或reader读取数据的时候报异常“不支持此功能” 求解决方案! 谢谢了! --------------------编程问答-------------------- 单步看看那里出错 --------------------编程问答--------------------
单步连接成功并打开 在adapter.fill(dataset)或 OracleDataReader.read()
抛出异常“ORA-29036: 不支持该功能”
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 自己顶个!希望有经验的兄弟伙指导下! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 你执行的是什么语句?
那个错误代码大泛泛了 --------------------编程问答-------------------- 贴下代码
--------------------编程问答-------------------- 如果我将SQL语句改成
void GetData()
{
string tnsName = "(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME = repdb1CS_1121)(SERVER = timesten_client)))";
Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection("User Id=oratt;Password=timesten;Data Source=" + tnsName + ";Statement Cache Size=0;");
try
{
con.Open();
Oracle.DataAccess.Client.OracleCommand cmd = new OracleCommand("select EMPNO from oratt.bonus;", con);
cmd.CommandType = CommandType.Text;
DataTable ds = new DataTable();
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.Fill(ds);//报错
//OracleDataReader rdr = cmd.ExecuteReader();
//while (rdr.Read())
//{
// int f1 = int.Parse(rdr[0].ToString());
// int f2 = int.Parse(rdr[1].ToString());
// Console.WriteLine(f1 + " " + f2);
//}
con.Close();
for (int i = 0; i < ds.Rows.Count; i++)
{
DataRow dr = ds.Rows[i];
int f1 = int.Parse(dr[0].ToString());
int f2 = int.Parse(dr[1].ToString());
int f3 = int.Parse(dr[2].ToString());
MessageBox.Show(f1.ToString() + " " + f2.ToString() + " " + f3.ToString());
}
}
catch (OracleException e)
{
string ee = e.ToString();
}
}
begin select EMPNO from oratt.bonus; end;
就会报:
Oracle.DataAccess.Client.OracleException ORA-57000: TT8503: ORA-06550: line 1, column 7:
PLS-00428: an INTO clause is expected in this SELECT statement 在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
在 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
在 Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
在 Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) --------------------编程问答-------------------- 如果使用游标查询的话 不会报错 但是无法插入和查询任何值! --------------------编程问答-------------------- 换微软的 ado.net 驱动试试看,
是不是 odp.net 安装的有问题呢? --------------------编程问答--------------------
我的ODP.NET 是装ORACLE服务器时自带安装的! ORACLE是完全安装成功了的! 开发和服务器是一台机子 --------------------编程问答-------------------- --------------------编程问答-------------------- 谁搞定这个问题了呢, string tnsName = "(DESCRIPTION =(CONNECT_DATA =(SERVICE_NAME = repdb1CS_1121)(SERVER = timesten_client)))";
Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection("User Id=oratt;Password=timesten;Data Source=" + tnsName + ";Statement Cache Size=0;");
try
{
con.Open();
open老是不通过,而且不明白为什么要用户ID和密码,DSN这个玩意不是只需要一个名字就好了的吗,郁闷
--------------------编程问答-------------------- 楼主解决了吗?
我也遇到这个问题了。
补充:.NET技术 , C#