Quitada ブログ RX

Quitada ブログ RX

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

quitada 2.0

quitada 2.0

カレンダー

カテゴリ

(284)

SEO

(144)

金持ち父さん

(640)

生活

(215)

パソコン弄り

(136)

友人

(63)

IT

(160)

飲食

(134)

書評

(14)

My ブログ

(297)

BBC

(7)

健康

(7)

コメント新着

Robertalila@ Кому повезет в 2026 году, китайский гороскоп Китайские звёзды 2026: только три знака…
WalterAgono@ Статья для размышлений Правовые риски обычной проституции и пр…
Haroldcloni@ строительство-отделка.рф Подберем персонал Первый шаг в подборе…
DimaFlunK@ шкаф для посуды на кухню [url= <small> <a href="https://mebel-ko…
2007年04月15日
XML
カテゴリ: IT
仕事関連でどうしても必要になり、 特に知りたくはなかったが Java から Oracle のストアードプロシージャを実行して結果をうけとる方法を勉強したので、とりあえず備忘録、備忘録。





JDBC-03 CallableStatementを使う。

というころで、私の場合はためしにこんなストアードプロシージャを作ってみました。

CREATE OR REPLACE PROCEDURE TESTSP (
    pSql IN VARCHAR2
  , pResult OUT NUMBER
  , pSqlCode OUT NUMBER
  , pSqlMsg OUT VARCHAR2
) IS
BEGIN
  pResult:= 12354;
  pSqlCode:= 12345;
  pSqlMsg:='12345desuyo';
END;
/

えっとえっと、1 つの文字列を引数として、決まった 3 つの値を返すというとっても意味のないものです。ぐはぁ。

Java のソースコードは以下のような感じ( 赤字 になっている JNDI 関連のお作法コードは WebLogic Server を使った場合のもの)。ま、 CallableStatement を使いましょうということですね。
import java.util.*;
import java.sql.*;
import javax.naming.*;
    :
  Context ctx = null;
  Connection conn = null;
  CallableStatement cs = null;

  Hashtable ht = new Hashtable();
  ht.put(Context.INITIAL_CONTEXT_FACTORY,
    " weblogic.jndi.WLInitialContextFactory ");
  ht.put(Context.PROVIDER_URL," t3://localhost:7001 ");

  try {
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup (" [DataSource の JNDI 名] ");

    conn = ds.getConnection();
    conn.setAutoCommit(false);

    cs = conn.prepareCall("{call TESTSP(1,?,?,?)}");
    cs.registerOutParameter(1,java.sql.Types.INTEGER);
    cs.registerOutParameter(2,java.sql.Types.INTEGER);
    cs.registerOutParameter(3,java.sql.Types.VARCHAR);
    cs.execute();

    System.out.println("OutParam 1 =" + cs.getInt(1));
    System.out.println("OutParam 2 =" + cs.getInt(2));
    System.out.println("OutParam 3 =" + cs.getString(3));
  } catch (Exception ex) {
    ex.printStackTrace();
  } finally {
    try {
      if (cs != null) cs.close();
      if (conn != null) conn.close();
    } catch (Exception sqlex){
      sqlex.printStackTrace();
    }
  }






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2007年05月06日 13時10分37秒
コメント(0) | コメントを書く
[IT] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: