U0000011: 动态SQL无法自动拼接成一个完整的SQL语句
描述
对于Oracle PLSQL中的动态SQL语句,UGO无法自动拼接成一个完整的SQL语句,生成错误提示。
数据库类型与版本
- 源库类型与版本:UGO 支持的 Oracle 版本。
- 目标库类型与版本:UGO 支持的 GaussDB 版本。
语法示例
create or replace function test() return int
as
begin
return 100;
end;
/
DECLARE
v_test int;
BEGIN
v_test:=test();
EXECUTE IMMEDIATE
'select' ||v_test|| 'from USER_TAB_PARTITIONS';
END;
/
改造建议
无自动转换方案,可使用功能转换动态SQL中的内容。
如果“SQL语句转换”功能依然无法自动转换,需要人工修改动态SQL。
GaussDB修改后SQL:
create or replace function test() return NUMBER(38)
as
begin
return 100;
end;
/
DECLARE
v_test NUMBER(38);
BEGIN
v_test:=test();
EXECUTE IMMEDIATE
'select' || v_test || 'from MY_TAB_PARTITIONS';
END;
/