iT邦幫忙

0

plsql insert

請問該怎麼將select出來的其中一個欄位更改後再insert進入原table
select a,b,c form abc_file
然後將 a 改為 a1 存入abc_file(不是update哦!)

2
做工仔人!
iT邦高手 1 級 ‧ 2017-10-17 10:13:45
最佳解答

insert into abc_file(a,b,c)
select 'a1',b,c from abc_file
=>select 之後的字串就是要 INSERT TABLE 的值. 但是要注意INDEX KEY 值及資料重覆的問題.

joy036 iT邦研究生 4 級 ‧ 2017-10-17 10:44:36 檢舉

請問若欄位較多是否用Cursor的寫法會比較好?

joy036 iT邦研究生 4 級 ‧ 2017-10-17 10:45:16 檢舉

不知在pl/sql中如何寫?

因為手上沒有SAMPLE 可供參考.
樓主可以參考這個網頁

1
souda
iT邦研究生 5 級 ‧ 2017-10-17 10:16:18

直接用for update即可.

1
dog830228
iT邦新手 1 級 ‧ 2017-10-17 10:17:35

關鍵字 INSERT INTO...SELECT

INSERT INTO abc_file
(
	a --要塞入的欄位
)
SELECT a1 --重點在裡面做變化
FROM abc_file

因為你給的需求太模糊 我只能給你個方向

1
尼克
iT邦高手 1 級 ‧ 2017-10-17 14:15:35

好人做到底。其它要自己想囉!

DECLARE
   CURSOR c1
   IS
      SELECT a1, a2, a3
        FROM table_a
       WHERE a1 = xxx;

BEGIN
   FOR i IN c1
   LOOP
      IF i.a1 = 'A'
      THEN
         UPDATE tabe_b
            SET b1 = i.a1, b2 = i.a2, b3 = i.a3
          WHERE xxx;
      END IF;
   END LOOP;
END;

我要發表回答

立即登入回答