Q&A

  • [Oracle] 여러건의 Insert문을 한번에 실행시키려면?
여러건의 문장을 insert하려고 합니다.

다음과같이



sql := 'insert into a values('a','b')';

sql := sql + 'insert into a values('c','d')';



Query1.SQL.Add(strsql);

Query1.ExecSQL;



이렇게 하면

ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

라는 에러메세지가 뜹니다.

문장 끝에 ;<< 를 안넣어서라구여?

델에서 오라클 쓸때 이거 넣으면 안되더군요...한문장 insert도 select도 안됩니다.

그렇다고 한문장 넣고 exec하고 그러자니..영 코딩이 지저분해지더군요...

참고로 oracle sqlplus에서 edit.buf 띄워서 두문장 insert문을 넣어도 버퍼가 실행을 못하더군요 ;문자가 에러문자로 뜨죠...

똑같이 에러가 나요..

화일로 저장하여 호출하면 실행되는데 buff에서는 한문장밖에 실행을 못하나봐요.

아시는 분 있음 도와주세염...



4  COMMENTS
  • Profile
    맨~ 2001.03.13 14:59
    초보왕 wrote:

    > 여러건의 문장을 insert하려고 합니다.

    > 다음과같이

    >

    > sql := 'insert into a values('a','b')';

    > sql := sql + 'insert into a values('c','d')';

    >

    > Query1.SQL.Add(strsql);

    > Query1.ExecSQL;

    >

    > 이렇게 하면

    > ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

    > 라는 에러메세지가 뜹니다.

    > 문장 끝에 ;<< 를 안넣어서라구여?

    > 델에서 오라클 쓸때 이거 넣으면 안되더군요...한문장 insert도 select도 안됩니다.

    > 그렇다고 한문장 넣고 exec하고 그러자니..영 코딩이 지저분해지더군요...

    > 참고로 oracle sqlplus에서 edit.buf 띄워서 두문장 insert문을 넣어도 버퍼가 실행을 못하더군요 ;문자가 에러문자로 뜨죠...

    > 똑같이 에러가 나요..

    > 화일로 저장하여 호출하면 실행되는데 buff에서는 한문장밖에 실행을 못하나봐요.

    > 아시는 분 있음 도와주세염...

    >



    TQuery은 여러줄의 INSERT문도 먹힙니다..간단한 로직두 가능하져..

    보니 끝에 쎄미콜론이 빠졌궁여..글구 때에 따라선 한문장씩 INSERT를 쓸수두 있습니다..

    그럴경우에는 이 부분을 프로시저루 묶어논다음 해당 프로시저만 호출하믄 되지여..



    sql := 'insert into a values('a','b');';

    sql := sql + 'insert into a values('c','d');';



    Query1.Close;

    Query1.SQL.Clear;

    Query1.SQL.Add(sql);

    Query1.ExecSQL;





  • Profile
    초보왕 2001.03.13 15:00
    맨~ wrote:

    > 초보왕 wrote:

    > > 여러건의 문장을 insert하려고 합니다.

    > > 다음과같이

    > >

    > > sql := 'insert into a values('a','b')';

    > > sql := sql + 'insert into a values('c','d')';

    > >

    > > Query1.SQL.Add(strsql);

    > > Query1.ExecSQL;

    > >

    > > 이렇게 하면

    > > ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

    > > 라는 에러메세지가 뜹니다.

    > > 문장 끝에 ;<< 를 안넣어서라구여?

    > > 델에서 오라클 쓸때 이거 넣으면 안되더군요...한문장 insert도 select도 안됩니다.

    > > 그렇다고 한문장 넣고 exec하고 그러자니..영 코딩이 지저분해지더군요...

    > > 참고로 oracle sqlplus에서 edit.buf 띄워서 두문장 insert문을 넣어도 버퍼가 실행을 못하더군요 ;문자가 에러문자로 뜨죠...

    > > 똑같이 에러가 나요..

    > > 화일로 저장하여 호출하면 실행되는데 buff에서는 한문장밖에 실행을 못하나봐요.

    > > 아시는 분 있음 도와주세염...

    > >

    >

    > TQuery은 여러줄의 INSERT문도 먹힙니다..간단한 로직두 가능하져..

    > 보니 끝에 쎄미콜론이 빠졌궁여..글구 때에 따라선 한문장씩 INSERT를 쓸수두 있습니다..

    > 그럴경우에는 이 부분을 프로시저루 묶어논다음 해당 프로시저만 호출하믄 되지여..

    >

    > sql := 'insert into a values('a','b');';

    > sql := sql + 'insert into a values('c','d');';

    >

    > Query1.Close;

    > Query1.SQL.Clear;

    > Query1.SQL.Add(sql);

    > Query1.ExecSQL;

    >

    답변 감사합니다..하지만 ...

    지금 저는 말이죠....

    세미콜론을 넣음으로 해서 에러가 나고 있습니다.

    한건만 입력할 경우 세미콜론을 넣지 않으면 입력이 됩니다.

    위와 같이 두건 입력시에는 세미콜론을 안넣으면..두문장이 구분이 안되어 ERROR

    세미콜론 넣으면 넣어서 ERROR 납니다.

    이건 SELECT문에서도 마찬가지로 세미콜론 넣어서는 오히려 에러가 납니다.

    첨에 그것때문에 에러 못잡아서 무지 고생했었죠...



    SQL SERVER 를 쓸 때에서는 문제가 없었는데..ORACLE 쓰면서 문제가 되더군요...



  • Profile
    맨~ 2001.03.13 15:00
    초보왕 wrote:

    > 맨~ wrote:

    > > 초보왕 wrote:

    > > > 여러건의 문장을 insert하려고 합니다.

    > > > 다음과같이

    > > >

    > > > sql := 'insert into a values('a','b')';

    > > > sql := sql + 'insert into a values('c','d')';

    > > >

    > > > Query1.SQL.Add(strsql);

    > > > Query1.ExecSQL;

    > > >

    > > > 이렇게 하면

    > > > ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다

    > > > 라는 에러메세지가 뜹니다.

    > > > 문장 끝에 ;<< 를 안넣어서라구여?

    > > > 델에서 오라클 쓸때 이거 넣으면 안되더군요...한문장 insert도 select도 안됩니다.

    > > > 그렇다고 한문장 넣고 exec하고 그러자니..영 코딩이 지저분해지더군요...

    > > > 참고로 oracle sqlplus에서 edit.buf 띄워서 두문장 insert문을 넣어도 버퍼가 실행을 못하더군요 ;문자가 에러문자로 뜨죠...

    > > > 똑같이 에러가 나요..

    > > > 화일로 저장하여 호출하면 실행되는데 buff에서는 한문장밖에 실행을 못하나봐요.

    > > > 아시는 분 있음 도와주세염...

    > > >

    > >

    > > TQuery은 여러줄의 INSERT문도 먹힙니다..간단한 로직두 가능하져..

    > > 보니 끝에 쎄미콜론이 빠졌궁여..글구 때에 따라선 한문장씩 INSERT를 쓸수두 있습니다..

    > > 그럴경우에는 이 부분을 프로시저루 묶어논다음 해당 프로시저만 호출하믄 되지여..

    > >

    > > sql := 'insert into a values('a','b');';

    > > sql := sql + 'insert into a values('c','d');';

    > >

    > > Query1.Close;

    > > Query1.SQL.Clear;

    > > Query1.SQL.Add(sql);

    > > Query1.ExecSQL;

    > >

    > 답변 감사합니다..하지만 ...

    > 지금 저는 말이죠....

    > 세미콜론을 넣음으로 해서 에러가 나고 있습니다.

    > 한건만 입력할 경우 세미콜론을 넣지 않으면 입력이 됩니다.

    > 위와 같이 두건 입력시에는 세미콜론을 안넣으면..두문장이 구분이 안되어 ERROR

    > 세미콜론 넣으면 넣어서 ERROR 납니다.

    > 이건 SELECT문에서도 마찬가지로 세미콜론 넣어서는 오히려 에러가 납니다.

    > 첨에 그것때문에 에러 못잡아서 무지 고생했었죠...

    >

    > SQL SERVER 를 쓸 때에서는 문제가 없었는데..ORACLE 쓰면서 문제가 되더군요...

    >



    온라인 상이라 확인을 못해봤궁여..



    다음과 같이 해보세영...



    sql := 'BEGIN';

    sql := sql + 'insert into a values('a','b');';

    sql := sql + 'insert into a values('c','d');';

    sql := sql + 'END;';



    Query1.Close;

    Query1.SQL.Clear;

    Query1.SQL.Add(sql);

    Query1.ExecSQL;

  • Profile
    초보왕 2001.03.13 19:51
    .