dbco에 CON1 이라는 걸 만들어놓고
프로그램내용은
data : l_con1(4) type c.
l_con1 = 'CON1'.
EXEC SQL.
SET CONNECTION :L_con1
ENDEXEC.
IF SY-SUBRC <> 0.
EXEC SQL.
CONNECT TO :L_con1
ENDEXEC.
IF SY-SUBRC <> 0.
message i001(00) with 'connection fail'.
exit.
ENDIF.
ENDIF.
EXEC SQL.
SET CONNECTION :L_con1
ENDEXEC.
EXEC SQL PERFORMING loop_output_RESULT1.
select *
INTO :WA_DATA-PSLIP_NO
FROM [SAFARI]@[TFA0101]
where pslip_no = '00038'
ENDEXEC.
*&---------------------------------------------------------------------*
*& Form LOOP_OUTPUT_RESULT1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM loop_output_result1 .
APPEND wa_data TO itab_data.
ENDFORM. " LOOP_OUTPUT_RESULT1
EXEC SQL.
DISCONNECT 'CON1'
ENDEXEC.
이렇게 해놓고 실행시키면 아래와같은 내용의 덤프 화면이 뜹니다...
SQL error 903 occurred when executing EXEC SQL.
Database error text........: "ORA-00903: invalid table name#"
어떻게 해야될지... 도움 부탁드립니다~~~...
댓글 2
-
특정단어
2010.12.07 00:33
-
해보자
2010.12.07 05:56
일반적으로 DB link를 이용하여 오라클 데이타를 조회시
from 테이블명@DB링크명 으로 사용을 합니다.
EX ) select * from emp@oradb
위에서 사용하신 것처럼 대괄호[] 는 필요가 없을것 같네요.
대괄호 지워주시면 될것 같습니다.
추가로 위의 대괄호 삭제해도 안될경우 아래 사항 체크하세요.
1. DB link를 사용할때 쓰는 계정이 SAFARI 라는 테이블에 대한 select 권한이 있는지
2. SAFARI라는 테이블이 실제 존재하는지
3. 데이타 조회시 혹시 다른 사용자의 테이블로서 유저명을 추가해야 하지는 않는지..
EX) select * from aaa.safari@tfa0101
도움이 되엇으면 좋겟네요~
해당 에러 내용은 좋은 소식과 나쁜 소식을 함께 담고 있습니다.
좋은 소식: 원하는 데이터베이스에 제대로 붙었으며, 쿼리도 잘 전달되었음.
나쁜 소식: 에러 내용 그대로, 쿼리에 사용된 테이블 이름을 난 모르겠음~
오라클 직접 붙여 본 지가 쫌 되서 잘 기억은 안나지만..
from [SAFARI]@[TFA0101] 이라고 쓰면, TFA0101 DB에 있는 SAFARI 테이블... 이라는 DB link 구문인데..
원래 원하시는 게, DBlink로 native sql 날려서 또 DBlink를 이용하는 것 맞나요? 잘 이해 안가는 방식인데..
from 절의 테이블이 DBlink라 이런 에러가 발생했는 지, 그건 정확히 모르겠습니다만...
애초에 SAP에서 TFA0101 데이터베이스를 link해서 사용하면 적어도 이런 고민은 할 필요가 없을 것도 같은데요..??