sql >> データベース >  >> RDS >> Oracle

TYPE TABLE OF VARCHAR2(5)をJavaでマップする方法は?

    次のように、varchar2の型テーブルをJavaにマップすることができました。

    1. PLSQLパッケージの外部に新しいタイプを作成し、必要な権限を付与します。

       CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (100);
       /
       GRANT all ON MYSCHEMA.STRARRAY TO MYUSER1;
       /
       commit;
      
    2. strarrayを受け入れる/返すPLSQL関数を作成します。これはパッケージ仕様で宣言され、パッケージ本体に完全に記述されています。配列をINOUTとして宣言しましたが、私の実装では、実際にはPLSQL呼び出しからの出力のみを使用します。

      PROCEDURE getArr(arr_var IN OUT strarray) IS
        counter NUMBER := 1;
      BEGIN
        arr_var := new strarray();
        WHILE counter <= 10 LOOP
          arr_var.extend();
          arr_var(counter) := 'my data string';
        END LOOP;
      END getArr;
      
    3. Javaでプロシージャを呼び出します。この例では、変数connはデータ型Connectionであり、すでに初期化されています。 Oracleデータベースに対してjdbcシンクライアントを実行しています。

      CallableStatement proc = null;
      String sql = "{ call myPackage.getArr(?) }";
      try{
        proc = conn.prepareCall(sql);
        proc.registerOutParameter(1, OracleTypes.Array, "MYSCHEMA.STRARRAY");
        proc.execute();
        Array arrOut = proc.getArray(1);
        for (int num=0; num<10; num++){
           System.out.println(arrOut[num]);
      }finally{
        proc.close();
      }
      


    1. Oracleタイムゾーン変換(from_tzを使用)

    2. エラーコード:1411。関数str_to_dateの日時の値が正しくありません:「0000-00-00」

    3. REDOロググループとファイルとメンバーの理解

    4. Matlab から Microsoft SQL Server 2008 (MSSQL) に接続するには?