您现在的位置是:首页 >

怎么调用存储过程 ADO.NET访问Oracle 9i存储过程(上)[4]

火烧 2022-10-30 17:14:07 1076
ADO.NET访问Oracle 9i存储过程 上 [4]   不返回数据的存储过程  OracleComma d 类的 ExecuteOracleNo Query 方法用于执行不返回任何行的 SQL

ADO.NET访问Oracle 9i存储过程(上)[4]  

  不返回数据的存储过程

  OracleCommand 类的 ExecuteOracleNonQuery() 方法用于执行不返回任何行的 SQL 语句或存储过程 该方法返回一个 int 值 表示受 UPDATE INSERT 和 DELETE 命令影响的行数 如果没有任何行受到影响 则返回 如果您所执行的 INSERT DELETE 或 UPDATE 语句恰好影响一行 则该方法具有单个参数 OracleString out rowid 该参数唯一标识 Oracle 数据库中受影响的行 可以使用该值来优化后续相关查询

  还可以使用 OracleCommand 类的 ExecuteNonQuery() 方法来执行不返回数据的存储过程 但您将无法获得上面介绍的唯一行标识符

  尽管上述命令都不会返回任何数据 但映射到参数的输出参数和返回值仍然使用数据进行填充 这使您可以使用上述任一命令从存储过程返回一个或多个标量值

  以下 Oracle 存储过程删除了由单个输入参数指定的员工的所有工作经历 并且不返回任何数据

 CREATE OR new PROCEDURE DELETE_JOB_HISTORY

  (

  p_employee_id NUMBER

  )

  IS

  BEGIN

  DELETE FROM job_history

  WHERE employee_id = p_employee_id;

  END DELETE_JOB_HISTORY;

  以下代码运行了该存储过程

  // create the connection

  OracleConnection conn = new OracleConnection( Data Source=oracledb;

  User Id=UserID;Password=Password; );

  // create the mand for the stored procedure

  OracleCommand cmd = new OracleCommand();

  cmd Connection = conn;

  cmd CommandText = COUNT_JOB_HISTORY ;

怎么调用存储过程 ADO.NET访问Oracle 9i存储过程(上)[4]

  cmd CommandType = CommandType StoredProcedure;

  // add the parameter specifying the employee for whom to delete records

  cmd Parameters Add( p_employee_id OracleType Number) Value = ;

  OracleString rowId;

  // execute the stored procedure

  conn Open();

  int rowsAffected = cmd ExecuteNonQuery();

  conn Close();

  Console WriteLine( Rows affected: + rowsAffected);

lishixinzhi/Article/program/net/201311/15011  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码