2017-01-05 15 views
0

Oracle의 이기종 서비스를 사용하는 Oracle 데이터베이스의 MS Access 데이터베이스에 대한 데이터베이스 링크가 있습니다. 일부 Access 테이블 열 이름이 Oracle 허용 30자를 초과합니다. 이 % ROWTYPE 구문을 사용하는 경우 트림 또는 열 이름을자를 수있는 방법원격 NON-Oracle 데이터베이스를 사용할 때 PLA/SQL 블록에서 ORA-06553 : PLS-114 : 식별자 'MyMSAccessFieldIsOver30CharsLong'이 너무 길어집니다.

declare 
    my_record [email protected]%rowtype; 
begin 
    null; 
    --dbms_output.put_line(my_record."flight_pattern_combination_string"); 
end; 
/
declare 
* 
ERROR at line 1: 
ORA-04052: error occurred when looking up remote object [email protected] 
ORA-00600: internal error code, arguments: [kglhfr-bad-free], [], [], [], [], [], [], [], [], [], [], [] 
ORA-06553: PLS-114: identifier 'flight_pattern_combination_str' too long 

있습니까 : 결과적으로, 내 PL/SQL 코드는 오류를 반환? Access 데이터베이스를 수정할 수 없습니다. 레코드 데이터 형식 선언을 사용할 수는 있지만 모든 열 데이터 형식을 pl/sql 블록이나 패키지로 복사해야합니다.

create table test as select * from [email protected] 
         * 
ERROR at line 1: 
ORA-00997: illegal use of LONG datatype 

PL/SQL 블록에서 % ROWTYPE을 구문을 사용하는 경우 트림 또는 열 이름을자를 수있는 방법이 있나요 : 나는 다음과 같은 사용하려고?

답변

0

내가 정확하게 귀하의 요구 사항이 무엇인지 잘 모르겠지만, 당신은 테이블

create or replace view vw (col1) as select flight_pattern_combination_str from [email protected] 

에 따라보기를 생성하고 다음 절차에서 해당보기를 사용하려고했다.