PL/SQLの関数を使用して古典的な数値スワップ・プログラムを実装する必要があります(ユーザーから2つの数値を受け取り、スワップして表示します)。しかし、PL/SQLの関数を使って2つの数値を返すことはできないようです。私は、PL/SQLの関数から2つの値を返す方法があるかどうか、あるいはこのコードを書くための他の方法があるかどうかを知りたかったのですが?PL/SQLファンクション
SET SERVEROUTPUT ON;
DECLARE
a NUMBER;
b NUMBER;
FUNCTION numSwap(num1 IN OUT NUMBER ,num2 IN OUT NUMBER)IS
temp_num NUMBER;
BEGIN
temp_num := num1;
num1 := num2;
num2 := temp;
END;
BEGIN
a := &a;
b := &b;
DBMS_OUTPUT.PUT_LINE('First Number = ' || a);
DBMS_OUTPUT.PUT_LINE('Second Number = ' || b);
--After swapping values
DBMS_OUTPUT.PUT_LINE('After swapping the values');
numSwap(a,b);
--Displaying the results
DBMS_OUTPUT.PUT_LINE('First Number = ' || a);
DBMS_OUTPUT.PUT_LINE('Second Number = ' || b);
END;
編集:明確にするために、私は、これは手続きのために、多かれ少なかれ構文であることを認識し、しかし、私は手順を使用する関数に
ちょうどPROCEDURE' 'に' FUNCTION'を変更してください。 –
関数を使ってそれを行う方法はありますか?それはおそらくプロシージャの構文が正しいことに気付きましたが、何らかの形で関数のためにもうまくいくことを期待していました –
@TonyAndrews - OPがこの機能をどのように使用するのかはっきりしない(これはほとんど確実に宿題なので、おそらく彼は勝っただろうまったく使用しないでください)。それによると、機能と手順には大きな違いがあります。関数は問合せの様々な節(SELECT、WHERE、GROUP BY ...)で呼び出すことができ、一般に式で使用できます。手続きはできません。だから* "FUNCTION'を' PROCEDURE'に変更する*は正当な答えではありません。 – mathguy