6

type のパラメータを持つストアド プロシージャを呼び出したいと思います。Windows C++ アプリケーションで (11g1) を使用してこれを行うにはどうすればよいですか?TABLE
OCCI

ストアド プロシージャの定義は次のとおりです。

  FUNCTION am_send(
    p_caFnr                   IN       VARCHAR2,
    p_TabBgr                  IN       DSKS_BGR_TAB,
    p_caTextout               OUT      VARCHAR2)
  RETURN NUMBER;

および使用されるタイプ:

create or replace
TYPE      DSKS_BGR_TAB,
AS TABLE OF DSKS_BGR

create or replace
TYPE      DSKS_BGR
(BgrNr    VARCHAR2(3),
 TrId     VARCHAR2(8))

私がこれまでに行ったこと:

DSKS_BGROTT ユーティリティを使用して型のオブジェクト表現を作成しました。

これまでの私のコード:

Environment* env = Environment::createEnvironment(Environment::OBJECT); 

try
{
    Connection *con = env->createConnection("xxxxx", "xxxxx", "xxxxx");

    Statement* statement = con->createStatement("BEGIN :1 := am_send(:2, :3, :4); END;");

    statement->registerOutParam(1, OCCINUMBER);
    statement->setString(2, "Test");    
    // ?? DSKS_BGR_TAB
    statement->registerOutParam(4, OCCISTRING, 1000);

    statement->execute();

    int result = statement->getNumber(1);
    string textOut = statement->getString(4);

    env->terminateConnection(con);  
}
catch(const SQLException &exc)
{
    cout << exc.getErrorCode() << exc.getMessage();
}

Environment::terminateEnvironment(env);

TABLEパラメータの設定方法がわかりません。

4

1 に答える 1