2016-05-25 3 views
0

このように思えますが、構文はわかりません。私は既存の行を更新しようとしています - 私が最初に見つけた行は「New」です。それから私は、キーと2つのその他の値を持つ区切られた文字列を返すようにしたい:あなたはパラメータ変数をOUT定義する必要が行を更新してキーを返すOracleのプロシージャ

create or replace procedure usp_direct_print_task_deque 
(
    taskNa in char 
,environmentCd in char 
) as 
begin 
    declare rowkey number; 

    select '~' || rowversion || '~' || target_document || '~' || target_printer 
    as delimited_data 
    , rowversion 
    from AFD1.bt_direct_print_tasks 
    where environment_cd = environmentCd 
    and task_na = taskNa 
    and task_status = 'new' 
    and rownum = 1; 

    update bt_direct_print_tasks 
    set taskStatus = 'processing' 
    where rowversion = rowkey; 

    return delimited_data; 

end usp_direct_print_task_deque; 
+0

構文エラーが発生しましたか?あなたはそれを投稿してもらえますか? – Prashant

+0

どこから来るのですか? – cableload

+0

よかった!私は 'declare rowkey number;'を削除しました。ステートメント。 Rowkeyはrowversionです - これは、これが合成キーを使用していることを明確にするために名前を変更しました。 –

答えて

1

x_delimited_datax_rowkeyはそれぞれ、delimited_datarowkeyの値を保持すると言います。 SELECTSELECT... INTO x_delimited_data, x_rowkeyに変更してください。 (私は、あなたがrowversionとして選択しているのは、rowkeyと仮定しています)。次にreturn delimited_data;return;に変更してください。

+0

Matthewに感謝します!あなたはそれを釘付けにした。 –

関連する問題