zoukankan      html  css  js  c++  java
  • delphi调用oracle存储过程(ODAC)

    CREATE OR REPLACE PACKAGE p_lee01
    IS
    TYPE cur_lee01 IS REF CURSOR;
    END;

    CREATE OR REPLACE PROCEDURE pro_lee01(in_a IN NUMBER,out_01 OUT NUMBER,cur_01 OUT p_lee01.cur_lee01) IS
    BEGIN 
     out_01 := 3;
     OPEN cur_01 FOR 
          SELECT * FROM TLEE01;
     dbms_output.put_line(IN_a);

    END;


    -- Create table
    create table TLEE01
    (
      ID    NUMBER,
      FNAME VARCHAR2(10)
    )

    ----------------------------------
    ODAC  两种调用方式

    procedure TForm1.Button15Click(Sender: TObject);
    begin
      orastoredproc1.Params.clear;
      OraStoredProc1.StoredProcName := 'pro_lee01';
      orastoredproc1.PrepareSQL;
      orastoredproc1.ParamByName('in_a').Value := 5;
      orastoredproc1.prepare;
      OraStoredProc1.ExecProc;
      showmessage(OraStoredProc1.ParamByName('out_01').AsString);
      ShowValue(OraStoredProc1, Button8.Caption);
    end;


    procedure TForm1.Button9Click(Sender: TObject);
    var
      s: string;
    begin
      s := 'begin pro_lee01(:a,:b,:cur_01 ); end;';
      OraQuery1.SQL.Clear;
      OraQuery1.SQL.Add(s);
      OraQuery1.AutoCommit := false;
      OraQuery1.FetchAll := true;
      OraQuery1.ParamByName('a').value := 4;
      OraQuery1.ParamByName('b').ParamType := ptoutput;
      OraQuery1.ParamByName('b').DataType:= ftinteger;

      OraQuery1.ParamByName('cur_01').ParamType := ptoutput;
      OraQuery1.ParamByName('cur_01').DataType:= ftcursor;
      OraQuery1.Open;

      showmessage(OraQuery1.ParamByName('b').AsString);   //显示返回值
      ShowValue(OraQuery1, Button8.Caption);
    end;

  • 相关阅读:
    JavaScript初学者应注意的七个细节
    8个高质量图标的最佳搜索引擎
    Adobe CS5 For Mac综合贴(2011/01/22更新)
    http://apps.hi.baidu.com/share/detail/18571966
    不要使用@import
    【leetcode】Search in Rotated Sorted Array
    【leetcode】Excel Sheet Column Title
    C#Tcp多个客户端与服务器数据与文件传输
    唯一分解定理
    欧拉函数
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/5332877.html
Copyright © 2011-2022 走看看