C#调用Oracle存储过程的问题~

lornwolf 2004-04-15 10:54:03
问题是这样的~ 我要执行一个SQL语句来获得一个数据集然后填充DataSet,SQL语句如下:
SELECT
ORDER_HEADER.ORDER_NO,
(SELECT OPERATOR.OPERATOR_NM FROM OPERATOR, ORDER_HEADER WHERE ORDER_HEADER.OPERATOR_ID = OPERATOR.OPERATOR_ID) AS OPERATOR_NM,
ORDER_DETAIL.AMOUNT,
ORDER_DETAIL.KINGAKU
FROM
ORDER_DETAIL,ORDER_HEADER
WHERE
ORDER_HEADER.ORDER_NO = ORDER_DETAIL.ORDER_NO AND ORDER_HEADER.ORDER_NO = 'xxxxx';
这个SQL语句可以在SQL PLUS里执行并得到正确结果,但是在C#里一运行就报错。
ハンドルされていない例外 : System.Data.OleDb.OleDbException: ORA-00972: identifier is too long
代码如下:
OleDbConnection conn = new OleDbConnection(connStr);
OleDbCommand cmd = new OleDbCommand(selectStr,conn);
OleDbDataAdapter ada = new OleDbDataAdapter(cmd);

DataSet ds = new DataSet();
ada.Fill(ds,"TableName"); // 执行到这里就会报错

所以我想把那个Select语句写成存储过程:
CREATE OR REPLACE PACKAGE User1.GinkouKessan IS

type outList is ref cursor;
PROCEDURE GetOrderInfo(P_ORDER_NO IN VARCHAR2, RESULT OUT outList);

END GinkouKessan;
/
CREATE OR REPLACE PACKAGE BODY User1.GinkouKessan IS

PROCEDURE GetOrderInfo (
P_ORDER_NO IN VARCHAR2,
RESULT OUT outList
) IS
BEGIN

OPEN RESULT
FOR
SELECT
ORDER_HEADER.ORDER_NO,
(SELECT OPERATOR.OPERATOR_NM FROM OPERATOR, ORDER_HEADER WHERE ORDER_HEADER.OPERATOR_ID = OPERATOR.OPERATOR_ID) AS OPERATOR_NM,
ORDER_DETAIL.AMOUNT,
ORDER_DETAIL.KINGAKU
FROM
ORDER_DETAIL,ORDER_HEADER
WHERE
ORDER_HEADER.ORDER_NO = ORDER_DETAIL.ORDER_NO AND ORDER_HEADER.ORDER_NO = '200404080001';

END;

END GinkouKessan;
/
我想用C#调用这个存储过程然后取得返回的数据集,但不知道怎么取得结果,请各位指教!
...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lornwolf 2004-04-20
  • 打赏
  • 举报
回复
问题解决了,用Oracle数据提供者就没问题了
甲骨文 2004-04-16
  • 打赏
  • 举报
回复
如果想取结果,你的Procedure要改一下,你的写法是无法取得的,你可到ORACLE官方主页
上去找一下,有实例
bitsbird 2004-04-15
  • 打赏
  • 举报
回复
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(query, conn);
liduke 2004-04-15
  • 打赏
  • 举报
回复
存储过程的返回值允许是结果集啊
sdenli 2004-04-15
  • 打赏
  • 举报
回复
studying
lornwolf 2004-04-15
  • 打赏
  • 举报
回复
up

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧