問題タブ [java-stored-procedures]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
616 参照

java - JDK 6:指定されたクラスのメインメソッドを実行する新しいJavaプロセスを実行する方法はありますか?

終了する直前に、クラスのmainメソッドを実行するために新しいデーモンプロセスを実行する必要があるアプリケーションを開発しようとしています。

メインアプリケーションが終了した後も、デーモンプロセスが実行中である必要があります。

これはOracleDBで実行されるJavaストアドプロシージャであるため、ファイルシステムファイルではなくデータベース構造で定義されているため、オペレーティングシステムシェルからJavaクラスを見つけることができないためRuntime.execを使用できません。

特に、望ましい動作は、リモートデータベースセッション中に次のことができるようになることです。

デーモンプロセスを実行し、デーモンプロセスを実行状態のままにして終了する最初のJavaメソッドを呼び出します

そして(最後の呼び出しが終了したため、デーモンプロセスとセッション制御を実行します)結果的に

デーモンプロセスと通信するメソッドを呼び出します(通信の最後に最終的に終了します)

これは可能ですか?

ありがとう

アップデート

ホストに、JDBC-11Gociドライバーを使用してOracle11gR1DBに接続するJavaJDK6クライアントアプリケーションからのファイル転送サービスがない場合、大きなテキストファイルを作成してデータベースにロード(最高のパフォーマンスを実現)する必要があります。

入力として与えられたLOB(ラージデータベースオブジェクト)をファイルに格納するプロシージャを呼び出すことで、実用的なソリューションをすでに開発しましたが、そのようなメソッドは、避けたい中間構造が多すぎます。

そこで、最初の呼び出しでDB上にServerSocketを作成し、後でそれに接続して、直接高速通信でデータ転送を確立することを考えました。

私が遭遇した問題は、ServerSocketを作成するJavaプロシージャが終了できず、そのソケットとクライアントで実行中のスレッド/プロセスをリッスンしたままにして、ServerSocketが作成されたことを確認するために別のスレッドを実行できないために発生します残りの仕事を処理します。

明確になりたい

0 投票する
1 に答える
128 参照

java - Java/.Net相互運用機能としてのJavaストアドプロシージャ

JavaコンソールアプリケーションとASP.Netアプリケーションの両方からJavaAPIにアクセスする方法を探しています。

要するに、私のJava APIは、請求書を処理するための一連のメソッドを公開しています。これらのメソッドはすべて、基本的にコマンドです。

  • GenerateAllInvocies
  • GenerateInvoiceNumber
  • PrintAllInvoices
  • PrintInvoiceNumber

すべてのメソッドがデータベースと対話します。私は、Webサービスが相互運用の手段になると信じていました。しかし、それ以来、OracleのJavaストアドプロシージャに気づきました。

これは、基本的にストアドプロシージャをAPIとして扱い、ストアドプロシージャ自体に適切なJavaを呼び出して、請求書をディスクに書き込んだり、請求書を印刷したりできることを意味すると思います。ただし、これは少し奇妙に感じます。

以前にJavaと.Netアプリケーションの呼び出し間の相互運用を提供するためにJavaストアドプロシージャを使用した人はいますか?助言がありますか?これは本当に悪い考えですか?

ありがとう。

0 投票する
1 に答える
3032 参照

php - PHPからMongoDBに保存されたJavaScript関数を呼び出す

この関数を db.system.js に保存しています

PHPで

エラー

0 投票する
2 に答える
5719 参照

java - Pl/SQL と Java で記述されたストアド プロシージャのパフォーマンス比較

ここでの議論を経て、もう1つ質問があります。

数百万のユーザー ベースと毎日数百万のトランザクションを持つエンタープライズレベルのアプリケーションがあるとします。パフォーマンス万力、これはより良いでしょう。

  1. Java ストアド プロシージャ
  2. または Oracle ストアド プロシージャ (Pl/SQL)

PS:エンタープライズアプリケーション開発と言うときは、開発者の観点から、さまざまな抽象化レイヤーがあることを意味していました。フレームワークのテスト。複数のブレードに展開された自動テストと広範なデバッグなど

0 投票する
3 に答える
4715 参照

java - Oracle で Java ストアド プロシージャをデバッグする方法

ストアド Java プロシージャを含む Oracle Db があり、新しいプロシージャを時々ロードします。

アプリサーバーをデバッグモードに設定するのと同じデバッグ方法で、これらの Java プロシージャをデバッグできるようにしたいと考えています。

出来ますか?どうやってやるの?

ありがとう

0 投票する
1 に答える
6139 参照

oracle - Java ストアド プロシージャと PL/SQL ストアド プロシージャ

パフォーマンスが優れている Oracle DBMS では、別の pl/sql ストアド プロシージャから Java ストアド プロシージャを呼び出すか、別の pl/sql ストアド プロシージャから pl/sql ストアド プロシージャを呼び出します。

ところで、pl/sql プロシージャに Java プロシージャを複数回呼び出すループがあります (つまり、私のコードは PL/SQL と Java ストアド プロシージャを切り替えています)。これによりパフォーマンスが低下しますか?

0 投票する
1 に答える
1145 参照

oracle - ORACLE PL/SQL を使用した Unix Sun Solaris コマンドの実行 権限に関する問題

2 つのプロシージャと Java ソースを作成しました

1 つのプロシージャは、Java クラス TestHostCommand を呼び出しています。

Java ソースは次のとおりです。

もう 1 つの手順はアクセス許可を付与することですが、正しく生成されません。

エラーは無効なオブジェクトです。

ありがとう

0 投票する
2 に答える
618 参照

oracle - 検索文字列に基づいてテーブルからレコードを検索したい

検索文字列に基づいてテーブルからレコードを検索します。この検索は、ストアド プロシージャの一部です。

必要なものは次のとおりです。 1. テーブル ppl には、name,surname の形式のデータを含む列 name があります。たとえば、レコードは barack,oba bar,obama および barack,obama です。

  1. 検索文字列に基づいてレコードを選択します。検索文字列は、名前または姓にすることができます。
  2. 検索文字列に基づいて正確な検索が必要です。検索文字列が bar かどうかを意味します。barack,obama レコードを返すべきではなく、bar,obama のみを返す必要があります。姓の部分の類似完全一致検索。

  3. 検索文字列に姓名があるかどうかはわかりません。したがって、検索文字列は「oba」でもかまいません..そして、「barack,oba」レコードのみを返す必要があります。

これまでに試みた以下のアプローチ。しかし、これらのどれもうまくいきませんでした:

  1. 'bar,%' のような名前または '%,bar' のような名前の ppl から名前を選択します。これは名前の部分では機能しますが、姓の部分では機能しません。

'oba,%' のような名前または '%,oba' のような名前の ppl から名前を選択します。適切な結果を出していません。

  1. select name from ppl where name = ANY('%,oba',oba,%'); - 機能していません

  2. select name from ppl where regexp_like (name,'^,oba$') OR regexp_like (name,'oba$,^'); - 機能していません

この場合、あなたの考えを共有していただきたいと思います。

0 投票する
1 に答える
1495 参照

java - byte[]を使用したOracleのJavaユーザー定義関数

Oracle でこのテーブルを指定すると、

またはMSSQLで

Java のテキスト エンコーディング サポートを利用する Java で Oracle 用の UDF を作成する方法の包括的な例を探しています。

MSSQL では、次の .Net アセンブリを作成します。

次のコマンドを使用して、アセンブリを登録し、udf を定義します。

次のようなクエリで使用します。


アップデート

これまでのところ、この Java クラスを作成しました。

これらのコマンドを使用して UDF を作成しました。

しかし、それを使用しようとすると、次のエラーが発生します。


更新 2

java.lang.byte[] は問題ではないことがわかりました。それを単に byte[] に変更すると、機能するようになりました。ありがとうティム!

ここに便利な表があります: http://download.oracle.com/docs/cd/B19306_01/java.102/b14187/chsix.htm#BABJIJEB

0 投票する
2 に答える
21350 参照

java - byte[] 配列を BLOB として Oracle データベースに挿入すると、ORA-01460 が発生します: 実装されていないか、または不合理な変換が要求されました

テーブルの Oracle Blob フィールドに byte[] 配列を挿入しようとしている Java ストアド プロシージャがあります。

次のように準備済みステートメントを作成しますが、準備済みステートメントを実行するとランダムに失敗します。問題が pstmt.setBytes(4,content) から発生していることを絞り込みました。私が得るエラーは次のとおりです。

ORA-01460: 実装されていない、または不当な変換が要求されました。