2013-04-25 67 views
0

我有一個查詢:如何在一個字段中插入多個值?

INSERT 
INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222', 
    'NEW', 
    '1' 
) 

這一個工程確定。但 而不是「1」,我想在一個字段中插入多個值,如「1」,「2」,「3」

,通常你做這樣的:

INSERT 
INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222e', 
    'NEW', 
    '1,2,3' 
) 

但如何要做到這一點,如果價值將作爲'1','2','3'

INSERT 
INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222e', 
    'NEW', 
    '1','2','3' 
) 

所以,我們不能變化'1','2','3'(由於一些自動化的),但我們之前和過去的這個字符串添加任何東西。在結果信息Reason字段應該是類似於1,2,3

如何做到這一點?

+0

你必須使用轉義字符。 – Luv 2013-04-25 10:33:03

+0

你的意思是說你得到'''','2','3',你想插入''1,2,3''嗎? – 2013-04-25 10:37:11

+0

@ A.B.Cade是的,對不起,我剛剛解決了這個問題。所以我會有'1','2','3',但是我想把它們作爲文字插入到一個字段上''1,2,3'' – VextoR 2013-04-25 10:39:39

回答

1

嘗試:

INSERT 
INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222e', 
    'NEW', 
    replace(q'['1','2','3']', q'[',']', '') ) 
+0

謝謝!幾乎!我得到的字符串爲'123',但它應該是一些分離像'1,2,3' – VextoR 2013-04-25 10:45:45

+0

改爲'替換(q'['1','2','3']',q'[ ',']',',')'現在完美了! – VextoR 2013-04-25 10:57:42

0

試試這個INSERT

INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222', 
    'NEW', 
    '1' 
),(
    'PO', 
    '0177', 
    '000222e', 
    'NEW', 
    '1,2,3' 
) 
+0

它說: '命令行錯誤:18列:3 錯誤報告: SQL錯誤:ORA-00933:неверноезавершениеSQL-предложения 00933. 00000 - 「SQL命令不能正確地結束」' – VextoR 2013-04-25 10:36:12

+0

顯然它不會工作 – 2013-04-25 10:39:23

2

插入值replace(q'$'1','2','3'$', '''', '') 單引號(')是轉義字符。 即

INSERT 
INTO I#journal 
    (
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
    VALUES 
    (
    'PO', 
    '0177', 
    '000222', 
    'NEW', 
    replace(q'$'1','2','3'$', '''', '') 
); 
+0

的感謝!但我不能那樣做。由於這些值自動以'1','2','3'的形式出現,我可以在該字符串前後更改任何內容,但不能更改字符串itsef – VextoR 2013-04-25 10:42:37

+0

如何用雙引號替換單引號? – TechDo 2013-04-25 10:44:29

+0

是否這樣? ''''1','2','3'''不起作用。 '錯誤在命令行:16列:5 錯誤報告: SQL錯誤:ORA-00984:употреблениестолбцаздесьнедопустимо 00984. 00000 - 「列在這裏不允許」' – VextoR 2013-04-25 10:48:55

0

試試這個

INSERT INTO I#journal 
(
    Type_, 
    Mndnr, 
    Obj, 
    Status, 
    Reason 
) 
VALUES 
(
    'PO', 
    '0177', 
    '000222', 
    'NEW', 
    '''1'',''2'',''3''' 
) 
+0

這似乎可行,但你能解釋爲什麼這會起作用嗎? – danjuggler 2017-02-14 21:34:51

相關問題