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;

  • 相关阅读:
    成为Emacs高手01-学习自带教程
    成为Emacs高手03-学习基础Elisp
    Google Drive For Linux
    Yet Another Scheme Tutorial 02
    1、Maven 基本配置
    eclipse添加easyExport插件,打开本地文件
    原创一看便知、Maven创建web项目
    1、启动oracle的步骤
    java正则表达式【大全】
    servlet上传下载(任何格式的都可以)
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/5332877.html
Copyright © 2011-2022 走看看