2

列a、b、c、d、eを持つテーブルがあるとします

列 a、b、および c のパラメーター値を受け取るプロシージャ/関数のパラメーターから列 d および e を更新する方法/構文はありますか。(手続き(a, b, c, out d, out e))

(カーソルを使用してすべての行を 1 つずつ反復する以外)?

4

3 に答える 3

0

Oracle の専門家の助けを借りて、次の解決策にたどり着きました。

CREATE TABLE testtable
 ( 
  a number,
  b number,
  c number,
  d number
 );

CREATE TYPE testobj AS OBJECT
(
 x number,
 y number
);


CREATE OR REPLACE FUNCTION testfun(a number, b number)
RETURN testobj IS
begin
    return new testobj(x=>a+b, y=> a*b);
end;


INSERT INTO testtable VALUES (1,2,null,null);
INSERT INTO testtable VALUES (5,6,null,null);


UPDATE 
 (SELECT  tt.*,
               testfun1(a,b) fun_ret FROM testtable tt) talias
 SET talias.c=talias.fun_ret.x,
 talias.d=talias.fun_ret.y
 ;
于 2013-06-19T13:41:00.270 に答える