0

我有一个使用 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 语法时,有没有办法修剪或截断列名?

4

1 回答 1

0

我不确定您的具体要求是什么,但是您是否尝试过基于表格创建视图

create or replace view vw (col1) as select  flight_pattern_combination_str from myaccesstable@MSAccessODBC64

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

于 2017-01-06T01:54:44.527 回答