PL/SQL 块返回 ORA-06553:PLS-114:使用远程非 Oracle 数据库时标识符'MyMSAccessFieldIsOver30CharsLong'太长



我有一个数据库链接,链接到使用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

然后在过程中使用该视图。

相关内容

  • 没有找到相关文章

最新更新