我有一个数据库链接,链接到使用Oracle异构服务的Oracle数据库中的MS Access数据库。某些Access表列名的长度超过了Oracle允许的30个字符。结果,我的PL/SQL代码返回了一个错误:
declare
my_record myaccesstable@MSAccessODBC64%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 BASE.MSNS_MISSIONS@AMGBASETABLES64
ORA-00600: internal error code, arguments: [kglhfr-bad-free], [], [], [], [], [], [], [], [], [], [], []
ORA-06553: PLS-114: identifier 'flight_pattern_combination_str' too long
使用%rowtype语法时,有没有方法可以修剪或截断列名?不允许我修改Access数据库。我可以使用记录数据类型声明,但这需要将所有列数据类型复制到pl/sql块或包中。我尝试使用以下内容:
create table test as select * from myaccesstable@MSAccessODBC64
*
ERROR at line 1:
ORA-00997: illegal use of LONG datatype
在PL/SQL块中使用%rowtype语法时,有没有方法可以修剪或截断列名?
我不确定您的具体要求是什么,但您是否尝试基于表创建视图
create or replace view vw (col1) as select flight_pattern_combination_str from myaccesstable@MSAccessODBC64
然后在过程中使用该视图。