oracle - 尝试安装 utPLSQL 3.1.10
问题描述
我已经从 github 下载了 utPLSQL.zip,解压缩了存档,打开了与 zip 捆绑在一起的用户指南,并开始按照手动安装过程进行操作。
我正在使用 Oracle 18c XE、SQL Developer 20.2 和 utPLSQL 3.1.10。我正在使用sqlplus执行脚本,使用命令登录:sqlplus '/ as sysdba'
前三个脚本运行良好:
@create_utplsql_owner.sql <schema name> <password> users;
@install.sql <schema name>;
@install_ddl_trigger.sql <schema name>
第四个脚本:
@create_synonyms_and_grants_for_public.sql <schema name>;
失败并出现异常:在用户 PUBLIC 的模式中为 UTPLSQL 对象创建同义词 create public synonym ut for .ut * ERROR at line 1: ORA-00955: name is already used by an existing object
有没有人遇到过这个?我尝试恢复到 utPLSQL 3.1.9 但遇到了同样的问题......
谢谢!
解决方案
我第一次安装 utPLSQL 失败了。我删除了打算用作测试存储库的模式,这就是这个特定问题开始的时候。
深入研究 utPLSQL 安装脚本和一些 Oracle 文档,我发现删除模式不会从表 DBA_SYNONYMS 中删除所述模式的公共同义词。
运行安装脚本: install.sql 创建几个同义词,所有者在哪里。
运行安装脚本:create_synonyms_and_grants_for_public.sql 创建大量公共同义词。
删除模式以重置和重新安装 utPLSQL 只会删除所有者所在的同义词——必须手动删除公共同义词。该脚本完成这项工作并允许进行全新安装:
declare
sqq varchar2(250);
v_code varchar2(250);
v_errm varchar2(250);
cursor del_syns is
SELECT synonym_name
FROM DBA_SYNONYMS
WHERE table_owner = 'C##UNIT_TEST_REPOSITORY';
begin
FOR syn_name IN del_syns
LOOP
sqq := 'drop public synonym ' || syn_name.synonym_name || ' force';
dbms_output.put_line(sqq);
execute immediate sqq;
END LOOP;
EXCEPTION
when others then
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 64);
DBMS_OUTPUT.PUT_LINE ('------- Error code ' || v_code || ': ' || v_errm);
end;
推荐阅读
- json - 无法在 tableView 单元格中正确设置 JSON 中的图像
- python - stddev 功能的改进
- java - minecraft player.sendMessage 命令插件不起作用
- visual-studio-code - VSCode - 从导航建议中禁用向上/向下键
- swift - 如何在 SWIFT 中停止 tokbox 屏幕共享
- python - Python authlib flask - 如何撤销令牌/注销
- html - jQuery - 用于在 3 级文件夹结构中打开第一级文件夹的选择器
- python - 我试图使用 python 和 django 1.9 为苹果发送身份验证请求,但总是给我 unsupported_grant_type
- bash - 在 for 循环中查找命令
- python - 基于多索引 pandas 数据框的 matplotlib 绘制误差线