怎么调用oracle自己的存储过程
时间:2011-11-02
来源:互联网
Hi, 朋友们,
I got the error :
[Oracle.DataAccess.Client.OracleException] = {"ORA-06550: 第 1 行, 第 7 列: \nPLS-00306: 调用 'VALIDATE_NETWORK_SCHEMA' 时参数个数或类型错误\nORA-06550: 第 1 行, 第 7 列: \nPL/SQL: Statement ignored"}
当调用 SDO_NET_MEM.NETWORK_MANAGER.VALIDATE_NETWORK_SCHEMA时:
C# code
有谁能告诉我怎么写这段代码吗? Oracle is 10gR2.
I got the error :
[Oracle.DataAccess.Client.OracleException] = {"ORA-06550: 第 1 行, 第 7 列: \nPLS-00306: 调用 'VALIDATE_NETWORK_SCHEMA' 时参数个数或类型错误\nORA-06550: 第 1 行, 第 7 列: \nPL/SQL: Statement ignored"}
当调用 SDO_NET_MEM.NETWORK_MANAGER.VALIDATE_NETWORK_SCHEMA时:
C# code
public string getRecommendPath() { String pathid = "-1"; OracleConnection conn = ....; try { conn.Open(); // OracleCommand cmd_DN = new OracleCommand("SDO_NET_MEM.NETWORK_MANAGER.DROP_NETWORK", conn); //Drop network // cmd_DN.CommandType = CommandType.StoredProcedure; // cmd_DN.Parameters.Add("network", OracleDbType.Varchar2, "SDO_NET1", System.Data.ParameterDirection.Input); // cmd_DN.ExecuteNonQuery(); OracleCommand cmd_LN = new OracleCommand("SDO_NET_MEM.NETWORK_MANAGER.READ_NETWORK", conn); //Load network cmd_LN.CommandType = CommandType.StoredProcedure; cmd_LN.Parameters.Add("network", OracleDbType.Varchar2, "SDO_NET1", System.Data.ParameterDirection.Input); cmd_LN.Parameters.Add("allow_updates", OracleDbType.Varchar2, "FALSE", System.Data.ParameterDirection.Input); cmd_LN.ExecuteNonQuery(); OracleCommand cmd_VN = new OracleCommand("SDO_NET_MEM.NETWORK_MANAGER.VALIDATE_NETWORK_SCHEMA", conn); //Validate Network cmd_VN.CommandType = CommandType.StoredProcedure; cmd_VN.Parameters.Add("net_mem", OracleDbType.Varchar2, "SDO_NET1", System.Data.ParameterDirection.Input); cmd_VN.Parameters.Add("isvalid", OracleDbType.Varchar2, System.Data.ParameterDirection.Output);//这里错了? cmd_VN.ExecuteScalar(); //此处出错 String isValid = (string)((Oracle.DataAccess.Types.OracleString)(cmd_VN.Parameters[1].Value)); OracleCommand cmd_SDP = new OracleCommand("SDO_NET_MEM.NETWORK_MANAGER.SHORTEST_PATH_DIJKSTRA", conn); //Shortest Distance Path cmd_SDP.CommandType = CommandType.StoredProcedure; cmd_SDP.Parameters.Add("net_mem", OracleDbType.Varchar2, "SDO_NET1", System.Data.ParameterDirection.Input); cmd_SDP.Parameters.Add("start_node_id", OracleDbType.Int32, "1", System.Data.ParameterDirection.Input); cmd_SDP.Parameters.Add("goal_node_id", OracleDbType.Int32, "4", System.Data.ParameterDirection.Input); cmd_SDP.Parameters.Add("pathid_returned", OracleDbType.Int32, System.Data.ParameterDirection.ReturnValue); cmd_SDP.ExecuteScalar(); pathid = (string)((Oracle.DataAccess.Types.OracleString)(cmd_SDP.Parameters[3].Value)); } catch (System.Exception ex) { return "ERROR:" + ex.ToString(); // } finally { OraclePool.Instance.closeConnnection(conn); } return pathid; }
有谁能告诉我怎么写这段代码吗? Oracle is 10gR2.
作者: hillwolf 发布时间: 2011-11-02
cmd_VN.Parameters.Add("isvalid", OracleDbType.Varchar2, System.Data.ParameterDirection.Output);//output参数应该还要指定长度
作者: tx2730 发布时间: 2011-11-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28