为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:--03134284172-20240527-229704-20093 Pack5
【操作系统】:Docker
【CPU】: 虚拟化机器
【问题描述】*:
执行sql报错,应该是 用户名带 下划线 ,换一个不带下划线的用户就没问题了
总共1个语句正依次执行...
[执行语句1]:
DECLARE BEGIN FOR REC IN
(SELECT OWNER,
OBJECT_NAME
FROM ALL_OBJECTS
WHERE OWNER='DEV_SPAS_METADATA'
AND OBJECT_TYPE='TABLE'
)
LOOP
EXECUTE IMMEDIATE 'INSERT INTO DM_TABLES SELECT '''|| REC.OWNER ||''','''|| REC.OBJECT_NAME ||''',COUNT(*) FROM '|| REC.OWNER || '.' || REC.OBJECT_NAME;
END LOOP;
END;
执行失败(语句1)
-2202: 错误的对象名前缀
1条语句执行失败
查一下是不是owner或者object_name有特殊的字符,比如
--查询对象名标识符包含 " ' . , ; 和空格的对象
select owner,object_name,object_type,status from dba_objects where regexp_like(object_name ,'["''.,; ]');
如果有的话,完整的对象名称一般可以用双引号包起来,如果对象名称里有双引号,还得转义。
用162版本是正常建立该用户,可以更新下版本