復制代碼 代碼如下:
create or replace procedure p_GetItemID(
strInsertSQL varchar2,
seqName varchar2,
ID out varchar2
)
is
strSql varchar(200);
begin
execute immediate strInsertSQL;--執行插入語句
strSql:='select '||seqName||'.currval from dual';--獲取id的sql語句
execute immediate strSql into ID;--執行獲取id的sql語句
EXCEPTION
WHEN OTHERS THEN
DBMS_output.PUT_LINE(SQLERRM);
end p_GetItemID;
復制代碼 代碼如下:
public string ExecuteProcedure(string strInsertSQL,string proName,string seqName)
{
try
{
if (m_Connection_orc.State != System.Data.ConnectionState.Open)
{//從webconfig中獲取數據庫連接
m_Connection_orc.Open();
}
}
catch (System.Exception ex)
{
}
try
{ //藍色字體會核心語句
OracleConnection dbConnection_orc;
OracleCommand dbCommand_orc;
dbConnection_orc = m_Connection_orc;
dbCommand_orc = new OracleCommand(proName, dbConnection_orc); //proName為存儲過程的名字
dbCommand_orc.CommandType = CommandType.StoredProcedure;
//在Parameters中添加的參數名稱必須與數據庫中存儲過程中的參數名稱、類型保持一致
dbCommand_orc.Parameters.Add("strInsertSQL", OracleType.VarChar);
dbCommand_orc.Parameters.Add("seqName", OracleType.VarChar);
dbCommand_orc.Parameters.Add("ID", OracleType.VarChar);
dbCommand_orc.Parameters["ID"].Direction = ParameterDirection.Output; //指定參數ID為輸出類型的值
dbCommand_orc.Parameters["strInsertSQL"].Value = strInsertSQL; //獲取插入語句
dbCommand_orc.Parameters["seqName"].Value = seqName; //獲取序列名稱
dbCommand_orc.ExecuteNonQuery(); //執行操作
string newID = dbCommand_orc.Parameters["ID"].Value.ToString(); //獲取id的值
return newID; //返回id值
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
CloseConnection();
}
}
新聞熱點
疑難解答
圖片精選