熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ADO.NET訪問Oracle 9i存儲過程(上)[5]

2013-11-13 11:01:39  來源: .NET編程 

  如果您尚未修改默認的 HR 安裝則 JOB_HISTORY 表中員工 的記錄被刪除並且向控制台輸出以下內容

  Rows affected:

  訪問返回值

  RETURN 語句立即將控制從存儲過程返回到調用程序Oracle 存儲過程中的 RETURN 語句無法像在 TSQL 中那樣返回值

  Oracle 函數是計算並返回單個值的子程序它們的結構類似於存儲過程不同之處在於它們總是具有必須返回值的 RETURN 子句

  下面是一個返回指定員工的電子郵件的函數

CREATE OR new FUNCTION GET_EMPLOYEE_EMAIL (

  p_employee_id NUMBER

  )

  RETURN VARCHAR

  IS p_email VARCHAR();

  BEGIN

  SELECT EMAIL INTO p_email FROM EMPLOYEES

  WHERE EMPLOYEE_ID = p_employee_id;

  RETURN p_email;

  END GET_EMPLOYEE_EMAIL;

  執行函數的方式與執行存儲過程的方式相同可使用 ParameterDirectionReturnValue 參數獲得由函數返回的結果以下代碼顯示了使用方法

// create the connection

  OracleConnection conn = new OracleConnection(Data Source=oracledb;

  User Id=UserID;Password=Password;);

  // create the command for the function

  OracleCommand cmd = new OracleCommand();

  cmdConnection = conn;

  cmdCommandText = GET_EMPLOYEE_EMAIL;

  cmdCommandType = CommandTypeStoredProcedure;

  // add the parameters including the return parameter to retrieve

  // the return value

  cmdParametersAdd(p_employee_id OracleTypeNumber)Value = ;

  cmdParametersAdd(p_email OracleTypeVarChar )Direction =

  ParameterDirectionReturnValue;

  // execute the function

  connOpen();

  cmdExecuteNonQuery();

  connClose();

  // output the result

  ConsoleWriteLine(Email address is: + cmdParameters[p_email]Value);

[]  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15009.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.