如何在oracle中的空间表中插入字符串

时间:2015-10-25 16:03:53

标签: sql oracle date-conversion

我必须运行以下查询,但它给了我错误。

INSERT ALL
INTO tests VALUES
  (
    '25-10-2015 15:58:02',
    'a',
    238530
  )
INTO tests VALUES
  (
    '25-10-2015 15:58:02',
    'b',
    1234
  )
INTO tests VALUES
  (
    '25-10-2015 15:58:02',
    'c',
    4759
  )
INTO tests VALUES
  (
    '25-10-2015 15:58:02',
    'd',
    36734
  )
SELECT * FROM dual;

有什么方法可以插入字符串中有空格的字符串。

3 个答案:

答案 0 :(得分:0)

您可以插入空格,只要它在引号之间(')。但是,日期是不同的类型,可能需要转换。例如:

insert into tests values (TO_DATE('25-10-2015 15:58:02'...), 'd', 36734)

但是请注意,您需要引用TO_DATE syntax才能正确格式化。重点是您需要检查测试模式以验证它是否正在查找日期。如果它是varchar格式或其他一些字符串类型,那么它应该可以工作,除非你的字符串太长。如果是日期,则需要将日期传递给它。

答案 1 :(得分:0)

'25-10-2015 15:58:02'

以上是 STRING ,而不是 DATE 。您必须使用 TO_DATE 和正确的 FORMAT MODEL 将其明确转换为日期。

例如,

INSERT ALL
INTO tests VALUES
  (
    TO_DATE('25-10-2015 15:58:02','DD-MM-YYYY HH24:MI:SS'),
    'a',
    238530
  )

答案 2 :(得分:0)

除了Oracle的专有TO_CHAR,您还可以编写标准SQL时间戳文字(大多数DBMS支持,包括Oracle),TIMESTAMP后跟'yyyy-mm-dd hh:mi:ss 'string(独立于NLS_DATE_FORMAT):

TIMESTAMP '2015-10-25 15:58:02'