如何在一个字段中插入多个值?

时间:2013-04-25 10:30:06

标签: sql oracle oracle10g

我有一个问题:

    INSERT
INTO I#journal
  (
    Type_,
    Mndnr,
    Obj,
    Status,
    Reason
  )
  VALUES
  (
    'PO',
    '0177',
    '000222',
    'NEW',
    '1'
  )
这个工作正常。 但不是' 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

类似

怎么做?

4 个答案:

答案 0 :(得分: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'$', '''', '')
  );

答案 1 :(得分:1)

尝试:

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

答案 2 :(得分:0)

尝试 INSERT

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

答案 3 :(得分:0)

试试这个

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