복붙노트

[SQL] 오라클 11G에서 INSERT SELECT 문

SQL

오라클 11G에서 INSERT SELECT 문

나는 오라클 11g의 매우 간단한 SQL 문을 실행하는 데 노력하고있어.

 insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);

아주 간단한 쿼리. 이전 테이블 2 이전 테이블 1에 가입 데카르트, 표 1에 결과 값을 넣어.

나는 그 자체로 서브 쿼리를 실행했습니다, 그것은 완벽하게 작동합니다.

 select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2

나는 전체 문을 실행하려고 할 때, 나는 다음과 같은 오류가 발생합니다 :

 SQL Error: ORA-00936: missing expression
 00936. 00000 -  "missing expression"

나는 MySQL의 하나에서 동작하지 않습니다. 뭔가 내 문에 문제가 있습니다,하지만 확실히 그게 뭔지 모르겠어요.

해결법

  1. ==============================

    1.귀하의 질의는해야한다 :

    귀하의 질의는해야한다 :

    insert into table1 (col1, col2) 
    select t1.col1, t2.col2 
    from oldtable1 t1, oldtable2 t2
    

    즉 값 부분없이.

  2. ==============================

    2.키워드 값과 괄호를 제거하십시오. 여기에서 예를 볼 수 있습니다.

    키워드 값과 괄호를 제거하십시오. 여기에서 예를 볼 수 있습니다.

    이것은 기본적인 INSERT 구문입니다 :

    INSERT INTO "table_name" ("column1", "column2", ...)
    VALUES ("value1", "value2", ...);
    

    이것은 INSERT SELECT 구문입니다 :

    INSERT INTO "table1" ("column1", "column2", ...)
    SELECT "column3", "column4", ...
    FROM "table2";
    
  3. ==============================

    3.소스로는 '선택'사용시 '값'절을 필요로하지 않습니다.

    소스로는 '선택'사용시 '값'절을 필요로하지 않습니다.

    insert into table1 (col1, col2) 
    select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2;
    
  4. ==============================

    4.테이블에 데이터를 삽입하면 쓸 수 있습니다

    테이블에 데이터를 삽입하면 쓸 수 있습니다

    insert into tablename values(column_name1,column_name2,column_name3);
    

    그러나 테이블에 순서에 따라 순서대로 COLUMN_NAME 쓰기 ...

  5. ==============================

    5.테이블에 데이터를 삽입 할 수있는 또 다른 옵션이 있습니다 ..

    테이블에 데이터를 삽입 할 수있는 또 다른 옵션이 있습니다 ..

    insert into tablename values(&column_name1,&column_name2,&column_name3);
    

    이것은 데이터 값을 삽입하는 다른 창을 열 것이다 ..

  6. from https://stackoverflow.com/questions/7323407/insert-select-statement-in-oracle-11g by cc-by-sa and MIT license