я пытаюсь сделать вставку с помощью выбора и значения - PullRequest
0 голосов
/ 05 апреля 2011

Я пытаюсь сделать INSERT INTO с помощью SELECT и значений, но без работы.

ТАБЛИЦА ИСТОЧНИКОВ:

CREATE TABLE "MICV_PRE"."TS$SEQUENCES"
  (
    "ID_NODE"     NUMBER DEFAULT 1 NOT NULL ENABLE,
    "ID_TASK"     NUMBER DEFAULT 1 NOT NULL ENABLE,
    "ID_DOCUMENT" NUMBER DEFAULT 1 NOT NULL ENABLE,
    "ID_WORD"     NUMBER DEFAULT 1 NOT NULL ENABLE,
    "ID_TEAM"     NUMBER DEFAULT '1' NOT NULL ENABLE)

ТАБЛИЦА ДЛЯ ИЗМЕНЕНИЯ:

  CREATE TABLE TS$SEQUENCES_NEW(
     "ID_CODE" VARCHAR(255 CHAR) NOT NULL ENABLE,
     "CODE_SUBSEQUENCE" VARCHAR2(255 CHAR) NOT NULL ENABLE,
     "VALUE"  NUMBER(10,0) NOT NULL ENABLE
  );

источник таблицы:

id_task | id_node | id_word 
  10    |    20   | 30

таблица для изменения:

 id_code  | code_subsequence | value 
"id_task" | "empty"          | 10 
"id_node" | "empty"          | 20 
"id_word" | "empty"          | 30 

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Итак, SQL, который вы пробовали, выглядит так:

SQL> INSERT INTO TS$SEQUENCES_NEW
  2  SELECT TS$SEQUENCES.ID_TASK AS "VALUE", 'ID_TASK' AS "ID_CODE", 'VACIO' AS "CODE_SUBSEQUENCE"
  3  FROM TS$SEQUENCES
  4  /
                                                                *
ERROR at line 2:
ORA-01722: invalid number


SQL> 

Это невозможно, потому что типы данных в проекции запроса не соответствуют порядку столбцов в таблице. Поэтому либо измените оператор SELECT, либо определите порядок в предложении INSERT:

SQL> INSERT INTO TS$SEQUENCES_NEW  ("VALUE", "ID_CODE","CODE_SUBSEQUENCE" )
  2  SELECT TS$SEQUENCES.ID_TASK AS "VALUE", 'ID_TASK' AS "ID_CODE", 'VACIO' AS "CODE_SUBSEQUENCE"
  3  FROM TS$SEQUENCES
  4  /

1 row created.

SQL>
1 голос
/ 05 апреля 2011

Попробуйте это:

INSERT INTO TS$SEQUENCES_NEW (VALUE, ID_CODE, CODE_SUBSEQUENCE)
SELECT TS$SEQUENCES.ID_TASK AS "VALUE", 'ID_TASK' AS "ID_CODE", 'VACIO' AS "CODE_SUBSEQUENCE" 
FROM TS$SEQUENCES;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...