微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试安装utPLSQL 3.1.10

如何解决尝试安装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对象创建同义词 为.ut创建公共同义词ut * 第1行发生错误: ORA-00955:名称已被现有对象使用

有人遇到吗? 我尝试恢复到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;
,

请按照这些说明在您的系统上安装 utPLSQL 3.1.10。

  1. 解压文件夹后,转到名为 SOURCE 的文件夹并在 SQL Developer 中打开 create_utplsql_owner.sql(您只需将该文件拖到已打开的 SQL Developer Worksheet 和用户架构SYSDBA)。您可以按 F5,脚本将执行以下代码并要求您插入 utPLSQL 的新架构所有者的名称,默认键入 ut3,第二次输入密码 (ut3),第三次输入表空间:默认为 user。
  2. 转到 install.sql 文件,拖到 SQL Developer 并按 F5
  3. create_synonyms_and_grants_for_public.sql 此脚本将允许您与其他用户共享框架, 如果您想在另一个用户架构上运行 utPLSQL,您可以使用 create_user_grants.sqlcreate_user_synonyms(第一个参数是所有者 UT3,第二个是可以执行框架功能的用户,如 UT3 用户).
  4. 安装framework后,连接到UT3 schema并编写此代码来检查framework是否安装成功。 - 测试 执行 ut.run(); 如果您看到类似程序成功完成的内容,而您看不到真正的输出,则可以通过设置 set serveroutput on 来解决该问题;

希望我的解释有帮助,请写反馈或询问您是否有任何误解:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。