SELECT z.func_name
FROM
(SELECT
(SELECT A.func_name
FROM CF_FUNC_DIVIDE A, PO_POLICY B
WHERE B.policy_id = a.policy_id
AND B.func_id = A.func_id ) AS func_name
FROM PO_WEEKLY_PLAN a
WHERE a.treat_id = '20070103'
AND a.update_date = '20070103' UNION
SELECT
(SELECT A.func_name
FROM CF_FUNC_DIVIDE A, PO_POLICY B
WHERE B.policy_id = a.policy_id
AND B.func_id = A.func_id ) AS func_name
FROM PO_WEEKLY_PLAN a
WHERE a.update_date = '20070103') z
쿼리문이 위와 같습니다.
실제 운영서버의 테이블을 테스트 서버로 데이타를 옴겼습니다. 테스트 서버쪽 환경설정은 어떻게 되어있는지 제가 잘 모르겠습니다. dba가 아니라서.. 그냥 기존에 있는 사베서버를 활용했습니다.
근데 테이블도 같고 데이타도 같은데 동일한 쿼리문을 쓰면 실제 운영서버는 오류가 안나는데
테스트서버에서는 오류가 납니다.
오류메세지인즉은
com.sybase.jdbc2.jdbc.SybSQLException: The column prefix 'B' does not match with a table name or alias name used in the query. Either the table is not specified in the FROM clause or it has a correlation name which must be used instead.
이런메세지가 납니다.
쿼리문이 잘못되었다면 실서버에서도 오류가 나야 될텐뎅.. 거기서는 오류가 안나니까.. 혹시 환경쪽을 살펴봐야하나 해서요.. 제가 dba가 아니고 지금 dba도 없어서 물어볼곳이 없습니다. ㅜㅜ 혹시 아시면 답변좀해주세요
|