我想 传参过去一个sql语句然后再存储过程里面运行并返回数据集别嫌我 画蛇添足,用oralce存储过程来执行sql语句 为什么不用adp.net
因为我返回得数据集有sdo_geometry字段数据 C#这个不支持这个类型
于是我用odp.net 虽然能select * from 表 这样得到 数据
但是如果我用spatial函数的话 会返回错误 比如 SDO_FILTER()函数
返回错误 ORA-03113: 通信通道的文件结束
我查过了这是应为 貌似odp.net一些空间函数不支持 他有限度 2048K于是我想起了存储过程来执行并返回结果
但是初用oracle数据库的我 对oracle存储过程的我 是丈二和尚 摸不着头脑啊。
所以请教下能否帮忙写个
带一个参数 返回数据结果得 存储过程
因为我返回得数据集有sdo_geometry字段数据 C#这个不支持这个类型
于是我用odp.net 虽然能select * from 表 这样得到 数据
但是如果我用spatial函数的话 会返回错误 比如 SDO_FILTER()函数
返回错误 ORA-03113: 通信通道的文件结束
我查过了这是应为 貌似odp.net一些空间函数不支持 他有限度 2048K于是我想起了存储过程来执行并返回结果
但是初用oracle数据库的我 对oracle存储过程的我 是丈二和尚 摸不着头脑啊。
所以请教下能否帮忙写个
带一个参数 返回数据结果得 存储过程
解决方案 »
- 请帮忙看下这段ps sql代码哪里有问题。
- 日本和中国间的DBLINK速度问题
- 一个比较复杂的查询语句,请高手指点
- 求助:Proc程序频繁连接Oracle 数据库会对Oracle产生什么影响?对操作系统产生什么影响?
- 请教一语句
- 关于数字的格式化字符串的sql写法
- 从SQL2000导数据到oracle 9.2 ,测试连接的时候报错??
- 请问这样的数据如何插入?
- 如何使用long型?能不能用long like '%字符串%'?如果不能,有没有其他方法解决,谢谢!
- oracle数据基本常识
- 请教ORACLE SQL 语句问题
- 一换不同网段的ip,oracle服务能启,但PL/SQL就连接不上了 (急,高手请进!~)
http://topic.csdn.net/u/20081108/09/3af2140f-aa3f-4b5f-b588-522409ff0788.html
is
begin
open result for v_sql;
end;
/
那个返回值 再c#用什么类型?
知道什么类型了 是游标类型
但c#里面怎么接收这个数据?我想返回xml数据
http://blog.chinaunix.net/u/7579/showart_145921.html
-- 给你个例子:
1:建立PACKAGE:
CREATE OR REPLACE package SCOTT.pk_wt
is
type mytype is ref cursor;
procedure p_wt(mycs out mytype);
function f_get(str in varchar2)
return varchar2;
end;
/
说明:其实PACKAGE只是个声明罢了。我们在这里定义了一个存储过程返回结集和一个函数,返回字符串。2:建立PACKAGE BODY:
CREATE OR REPLACE package BODY SCOTT.pk_wt
is
procedure p_wt(mycs out mytype)
is
begin
open mycs for select * from test;
end p_wt;function f_get(str varchar2)
return varchar2
is
str_temp varchar2(100) := good luck!;
begin
str_temp := str_temp || str;
return str_temp;
end f_get;end pk_wt;
/
// C# 代码:
OracleCommand cmd=new OracleCommand("pk_wt.p_wt",orcn);
cmd.CommandType=CommandType.StoredProcedure;
OracleParameter p1=new OracleParameter("mycs",OracleType.Cursor);
p1.Direction=System.Data.ParameterDirection.Output;
cmd.Parameters.Add(p1);
OracleDataAdapter da=new OracleDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds,"test");
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
前些天你消失啦.
首先 谢谢了
其次 这个能不能返回一个xml数据集?
因为里面有数据类型 是c#基础类不支持的
是空是数据
怎么处理? 用什么接收数据集?
我用JAVA处理过你这样的需求,其实就是拼串啊,把xml的格式和取得的数据按xml规范拼在一起,C#也是同样道理.
因为我查询返回结果中有空间数据
数据库里面存储类型是sdo_geometry类型的返回时回出现 不支持的数据类型 问题我还没解决
查了好多也不知道怎么解决