急!急!急!请问如何在Oracle通过C#创建新的存储过程(不是调用)

nmgwolf042 2010-05-05 03:39:27
我要通过在C#中在Oracle中创建一个新的存储过程。存储过程如下:
CREATE OR REPLACE PROCEDURE version_table
(super in VARCHAR2,
name in varchar2,
bspatial in boolean)
IS
obj_id INTEGER;
vs_id integer;
str varchar2(256);

BEGIN
str := 'select object_class_id from ' || super || '.geostar_object_classes$ where table_name=upper(''' || name || ''')';
execute immediate str into obj_id;
if ..... then
begin

end;
end if;
commit;
END;
现在通过
OracleCommand pOraComm = new OracleCommand();
pOraComm.Connection = pOracleConn;
pOraComm.CommandText = strSQL;
pOraComm.CommandType = CommandType.Text;
pOraComm.ExecuteNonQuery();

不能建立。请问如何解决啊?
...全文
87 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
changjin642 2010-05-13
  • 打赏
  • 举报
回复
创建存储过程:
GetProduct.cs:
view source

print?
01.using System;
02.using System.Data;
03.using System.Data.SqlClient;
04.using System.Data.SqlTypes;
05.using Microsoft.SqlServer.Server;
06.
07.
08.public partial class StoredProcedures
09.{
10. [Microsoft.SqlServer.Server.SqlProcedure]
11. public static void GetProduct(int id)
12. {
13. //使用调用该存储过程的客户端打开的连接
14. SqlConnection conn = new SqlConnection("Context Connection=true");
15. conn.Open();
16. SqlCommand cmd = new SqlCommand();
17. cmd.Connection = conn;
18. cmd.CommandText = "Select ProductID, ProductName, CategoryID, Quantity FROM Products Where ProductID = @ID";
19. cmd.Parameters.Add("@ID", SqlDbType.Int, 0);
20. cmd.Parameters["@ID"].Value = id;
21.
22. SqlDataReader reader = cmd.ExecuteReader();
23. SqlPipe pipe = SqlContext.Pipe;
24. //将读取器返回给客户端
25. pipe.Send(reader);
26. }
27.};
阿双2009 2010-05-12
  • 打赏
  • 举报
回复

OracleConnection cmicCn = new OracleConnection(pOracleConn);
cmicCn.Open();
string strSQL = "create proc ProcEmployees " +
" as " +
" select * from Employees ";
OracleCommand cmicCmd = new OracleCommand(strSQL, cmicCn);
cmicCmd.ExecuteNonQuery();


试试这个。。
changjin642 2010-05-12
  • 打赏
  • 举报
回复
可以尝试一下就创建存储过程的sql语句用OracleCommand 来执行一下。
changjin642 2010-05-12
  • 打赏
  • 举报
回复
可以尝试一下就创建存储过程的sql语句用OracleCommand 来执行一下。
changjin642 2010-05-12
  • 打赏
  • 举报
回复
现在通过
OracleCommand pOraComm = new OracleCommand();
pOraComm.Connection = pOracleConn;
pOraComm.CommandText = strSQL;
pOraComm.CommandType = CommandType.Text;
pOraComm.ExecuteNonQuery();

不能建立。请问如何解决啊?
strSQL是什么?是创建存储过程的sql语句吗?
nmgwolf042 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yeaicc 的回复:]

pOracleConn打开了吗?
pOraComm.ExecuteNonQuery();
这句执行成功了没有?
[/Quote]
肯定是打开了!而且执行成功了!
yeaicc 2010-05-05
  • 打赏
  • 举报
回复
pOracleConn打开了吗?
pOraComm.ExecuteNonQuery();
这句执行成功了没有?

110,526

社区成员

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

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

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