Q&A

  • SQL 작성에 문제(오라클 사용)
오라클을 사용하고 있습니다.

그런데 Query1(TQuery)에서 SQL을 작성하였습니다.



SELECT T1.Numb, T2.Name, T2.Psno

FROM T1,T2,T3

WHERE (TI.NUMB = T2.CODE) AND

(T1.NUMB = T3.PSNO) AND

(T1.NUMB LIKE :pNUMB) // 타입은 스트링입니다.

ORDER BY T1.Numb



여기서 Query1.ParamByName('pNUMB').AsString := Edit1.Text; 했는데

Edit1에 값을 넣으면 데이타가 하나도 나타나지 않고 '%'주었을 때는 모든 데이타가 나타납니다.



분명 조건에 맞는 데이타가 존재하는데 왜 조건만 주면 나타나지 않는 걸까요? 여태 MS-SQL에서는 아무 문제없이 되었는데 오라클에서는 잘 안되는군요. 원인을 아신다면 꼭 부탁드립니다.

3  COMMENTS
  • Profile
    노력하는이 1999.08.06 04:06
    최혜정 께서 말씀하시기를...

    > 오라클을 사용하고 있습니다.

    > 그런데 Query1(TQuery)에서 SQL을 작성하였습니다.

    >

    > SELECT T1.Numb, T2.Name, T2.Psno

    > FROM T1,T2,T3

    > WHERE (TI.NUMB = T2.CODE) AND

    > (T1.NUMB = T3.PSNO) AND

    > (T1.NUMB LIKE :pNUMB) // 타입은 스트링입니다.

    > ORDER BY T1.Numb

    >

    > 여기서 Query1.ParamByName('pNUMB').AsString := Edit1.Text; 했는데

    > Edit1에 값을 넣으면 데이타가 하나도 나타나지 않고 '%'주었을 때는 모든 데이타가 나타납니다.

    >

    > 분명 조건에 맞는 데이타가 존재하는데 왜 조건만 주면 나타나지 않는 걸까요? 여태 MS-SQL에서는 아무 문제없이 되었는데 오라클에서는 잘 안되는군요. 원인을 아신다면 꼭 부탁드립니다.



    안녕하세요~ ^^;



    저도 전에 같은문제로 고민한적이 있습니다.

    그때는 PC 오라클에 파워빌더로 작성하던중이었는데요....

    최혜정님과 똑같은 문제가 발생하였습니다. 한국오라클사에서도 모르더군요.

    아직도 정확한 원인은 알수없지만 (오라클사에서는 된데요...)

    언어가 한국어가 아닌 영어로 설정하면 되더군요.

    아마 언어설정에도 원인이 있는것 같습니다.



    정확한 답변이 못되었군요...죄송!



  • Profile
    최혜정 1999.08.06 18:16
    노력하는이 께서 말씀하시기를...

    > 안녕하세요~ ^^;

    >

    > 저도 전에 같은문제로 고민한적이 있습니다.

    > 그때는 PC 오라클에 파워빌더로 작성하던중이었는데요....

    > 최혜정님과 똑같은 문제가 발생하였습니다. 한국오라클사에서도 모르더군요.

    > 아직도 정확한 원인은 알수없지만 (오라클사에서는 된데요...)

    > 언어가 한국어가 아닌 영어로 설정하면 되더군요.

    > 아마 언어설정에도 원인이 있는것 같습니다.

    >

    > 정확한 답변이 못되었군요...죄송!

    >



    안녕하세요 노력하는이 님

    제가 오라클을 잘 몰라서 그러는데요 언어를 한국어에서 영어로 어디서 바꾸면 됩니까?

  • Profile
    신인재 1999.08.06 03:17
    아래와 같이 쓰셨나요...?

    오픈 전에 메세지박스를 함 넣어 보세요 오류를 쉽게 찾을 수 있을겁니다.



    showmessage(Query1.sql.text);

    Query1.Open;



    최혜정 께서 말씀하시기를...

    > 오라클을 사용하고 있습니다.

    > 그런데 Query1(TQuery)에서 SQL을 작성하였습니다.

    >

    > SELECT T1.Numb, T2.Name, T2.Psno

    > FROM T1,T2,T3

    > WHERE (TI.NUMB = T2.CODE) AND

    > (T1.NUMB = T3.PSNO) AND

    > (T1.NUMB LIKE :pNUMB) // 타입은 스트링입니다.

    > ORDER BY T1.Numb

    >

    > 여기서 Query1.ParamByName('pNUMB').AsString := Edit1.Text; 했는데

    > Edit1에 값을 넣으면 데이타가 하나도 나타나지 않고 '%'주었을 때는 모든 데이타가 나타납니다.

    >

    > 분명 조건에 맞는 데이타가 존재하는데 왜 조건만 주면 나타나지 않는 걸까요? 여태 MS-SQL에서는 아무 문제없이 되었는데 오라클에서는 잘 안되는군요. 원인을 아신다면 꼭 부탁드립니다.