ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3611913 数値計算結果で更新するUPDATE文の書き方
質問者:t29x0479 下記のようなテーブルに対して、KEKKAフィールドにSIKIの計算結果を入れたいと思っています。
---
【TABLE_A】
SIKI VARCHAR(16)
KEKKA NUMBER(5,2)

SIKIには「1+(2*3)-4」といった数値計算式が入っています。

普通にselect 1+(2*3)-4 from dual とすれば返ってくる値をKEKKAに入れたいと思っています。また、SIKIフィールドには同じ値を持つレコードは存在しません。

いい方法があれば、ご教授ねがいます。
困り度:
  • すぐに回答を!
質問投稿日時:
07/12/19 19:48
この質問に対する回答は締め切られました。

回答

ANo.1 こんにちは。
functionを使えば良いと思いますよ。
こんな感じで。
※数式エラーとか一切考慮してません。

CREATE OR REPLACE FUNCTION CALC ( SIKI VARCHAR2 ) RETURN NUMBER
IS
varSQL_Stmt VARCHAR2(256);
numRet NUMBER := 0;
BEGIN
varSQL_Stmt := 'SELECT ' || SIKI || ' FROM DUAL';
EXECUTE IMMEDIATE varSQL_Stmt INTO numRet;
RETURN numRet;
END;
/
SHOW ERROR

UPDATE TABLE_A SET KEKKA=CALC(SIKI);
回答者:Jianchen
種類:回答
どんな人:一般人
自信:参考意見
回答日時:
07/12/20 12:42
この回答へのお礼この回答にお礼をつける(質問者のみ)