2011-04-05 1 views
0

J'essaye de faire un INSERT INTO avec un SELECT et des valeurs, mais ne fonctionne pas.Im essayer de faire un insert dans avec select et la valeur

TABLE SOURCE:

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) 

TABLE POUR MODIFIER:

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 
); 
table source

:

id_task | id_node | id_word 
    10 | 20 | 30 

table pour modifier:

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

quel est le code sql que vous avez essayé? – Tobias

+0

INSCRIRE DANS TS $ SEQUENCES_NEW SELECT TS $ SEQUENCES.ID_TASK COMME "VALUE", "ID_TASK" COMME "CODE_ID", "VACIO" COMME "CODE_SUBSEQUENCE" FROM TS $ SEQUENCES; – petercartagena

Répondre

2

Ainsi, le SQL que vous avez essayé est la suivante:

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> 

Cela échoue parce que les types de données dans la projection de la requête ne correspondent pas à l'ordre des colonnes dans la table. Donc, soit changer l'instruction SELECT ou définir l'ordre dans la clause 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

Essayez ceci:

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; 
+0

Est-ce que cela m'a vraiment pris huit minutes pour travailler sur l'exemple de code? Le temps ne passe pas lorsque vous vous amusez! – APC

+0

Merci, j'ai oublié les paramètres à remplacer. – petercartagena