2012-03-15 15 views
1

PL/SQLで書かれたアプリケーションのJavaでWebサービス(WS)インタフェースを作成しています。それは私がWSベースの呼び出しに変換しようとしているインターフェイスパッケージを持っています。さて、その中の手続きの多くは、次のようになります。JavaからPL/SQLプロシージャをコールする

mod_documents_01.rec_fileは、レコードやMODの$ d_documents.document_id_int(NUMBER)とMODの$ d_documents.document_version_int(NUMBER)である
procedure mod_add_file (
p_file  in out mod_documents_01.rec_file, 
p_new_id  out mod$d_documents.document_id_int%type, 
p_new_ver  out mod$d_documents.document_version_int%type, 
p_flag  in out varchar2, 
p_errors in out varchar2); 

テーブルの列です。

type rec_file is record (
id      mod$d_documents_content.id%type, 
document_id    mod$d_documents.document_id_int%type, 
document_version   mod$d_documents.document_version_int%type, 
name      mod$d_documents_content.name%type 
) ; 

java connection.prepareCall用の適切なPLSQLコードを生成するためのライブラリを作成しました。すべての

declare 
p_new_id mod$d_documents.document_id_int%type; 
modInterfaceFile mod_documents_01.rec_file; 
p_new_ver mod$d_documents.document_version_int%type; 

begin 
p_new_id := ?; 
modInterfaceFile.id := ?; 
modInterfaceFile.document_id := ?; 
modInterfaceFile.document_version := ?; 
p_new_ver := ?; 
MOD_INTERFACE.mod_add_file(modInterfaceFile ? ? p_new_id p_new_ver ? ?); 
? := p_new_id; 
? := modInterfaceFile.id; 
? := modInterfaceFile.document_id; 
? := modInterfaceFile.document_version; 
? := modInterfaceFile.name; 
? := p_new_ver; 
end; 

まず、私の質問は、このアプローチは何かいいですかそこには、任意のより良いです:それは、次のコード生成この例では(私は通常、すべてが1行である、読みやすさのために、新しい行を追加しました)方法?私は、レコードとテーブルの列型の引数をプロシージャに渡す方法に大いに関わっています。エラーは問題がで発生することを示し

PLS-00103: Encountered the symbol "" when expecting one of the following 

MOD_INTERFACE.mod_add_file(modInterfaceFile ? ? p_new_*HERE*id p_new_ver ? ?); 

私は以前に同様のエラーがあったが、ことによって、それらを解決し、それを実行しようと

また、このコードは、エラーを生成し、改行を削除します。しかし、今私は特別な文字はありません。空白だけです。

ご協力いただきありがとうございます。

+1

「MOD_INTERFACE.mod_add_file(modInterfaceFile?p_new_id p_new_ver??);」とは何ですか?あなたは 'MOD_INTERFACE.mod_add_file(modInterfaceFile、?、?、p_new_id p_new_ver、?、?);' – turbanoff

+0

が必要かもしれません。愚かな私。 – Xargos

答えて

2

あなたはJPublisher

「JPublisherでJavaクライアントプログラムでは、このようなSQLオブジェクトやPL/SQLパッケージなどのデータベース・エンティティを表すJavaクラスを生成する、完全にJavaで書かれた、ユーティリティでの使用を検討することをお勧めします。これは、 SQL、PL/SQL、またはサーバー側のJavaからWebサービスへのパブリッシュ、およびデータベース内部からの外部Webサービスの呼び出しを可能にするためのサポートも提供します。

+0

jDeveloperで使用可能なjPublisher(申し訳ありませんが、私が使用しているとは言及していませんが)は、動作するために全面的なトラブルをもたらしました(生成されたsqljファイルは、コードの明確化のために関数間で)、それは私の問題に対する最良の解決策でした。 – Xargos

関連する問題