2017-01-08 5 views
-3

を渡しながら、SQLクエリを実行するストアドプロシージャをどのようにしますOracleデータベースでストアドプロシージャ記述します。Oracleはパラメータ

  1. 与える結果はXML形式で設定されたSQLクエリを実行しますか?

ストアドプロシージャを実行するために持っているSQLクエリは次のようである:

SELECT * from TBL1 where ID = USER_SUPPLIED_ID; 

ユーザーは、ストアドプロシージャの実行中に「USER_SUPPLIED_ID」の値を入力する必要があります。

+1

いくつかを投稿してくださいより多くの情報。たとえば、XML形式はどうすればよいでしょうか?テーブル構造は何ですか?なぜ手技が必要なのですか?何よりも今までに何を試しましたか?問題を説明するコードを投稿してください。あなたはまた、[mcve]を見てみたいかもしれません – Aleksej

答えて

2

あなたは本当にそのための手順は必要ありません:

select dbms_xmlgen.getxml ('SELECT * from TBL1 where ID = 1') 
from dual; 

しかし、あなたが関数にそれを置きたいならば、あなたはこのようにそれを行うことができます:

create or replace function get_data(p_id integer) 
    return clob 
is 
begin 
    return dbms_xmlgen.getxml ('SELECT * FROM tbl1 where id = '||p_id); 
end; 
/
+0

ありがとう、私はどのように機能を実行するのですか?ストアドプロシージャに変換できますか? – Rio

+0

@リオ:他の機能と同様に呼びます。 'count()'、 'lower()'、偶数 'dbms_xmlgen.getxml()'のようなものです。プロシージャは何かを返すためにoutパラメータを必要とするでしょう - 私はそれがかなり厄介であることがわかります。それでは、あなたは正確に何をしようとしていますか? –

+0

私はストアドプロシージャを探しています。ところで、私はSQLPlusからget_data(p_id)関数を実行できますか? – Rio

関連する問題