• gen_create_syn.sql


    set echo off feedback off verify off pagesize 0 linesize 120

     ---变量从 sqlplus 的 call代码 传递过来 。

    -- 1 表示连接用户

    -- 2表示连接用户密码

    -- 3表示连接字符串

    ---4表示授权用户

    define v_input_un         = &1 
    define v_input_pw         = &2
    define v_input_conn_str   = &3
    define v_input_owner      = &4

    connect &v_input_un/&v_input_pw@&v_input_conn_str

    define v_create_syn_command_file = .logcreate_syn_&v_input_un._&v_input_owner..sql
    define v_create_syn_log_file     = .logcreate_syn_&v_input_un._&v_input_owner..log

     -- not exists 就是判断语句,如果没有子条件数据返回,就继续查询。

    spool &v_create_syn_command_file.
    prompt spool &v_create_syn_log_file.
    prompt set echo on feedback on
    prompt show user
    select
      'create or replace synonym '|| o.object_name ||' for &v_input_owner..'||o.object_name||';'
    from     all_objects o
    where    o.owner =  upper('&v_input_owner')
    and      user    != upper('&v_input_owner')
    and      o.object_type in ('TABLE', 'VIEW', 'SEQUENCE', 'PACKAGE', 'PROCEDURE', 'FUNCTION')
    and      not exists
      (select null
       from   user_synonyms s
       where  s.table_owner = o.owner
       and    s.table_name  = o.object_name)
    order by o.object_name
    /
    select
      'create or replace synonym '|| a_s.synonym_name ||' for &v_input_owner..'||a_s.synonym_name||';'
    from     all_synonyms a_s
    where    a_s.owner =  upper('&v_input_owner')
    and      user      != upper('&v_input_owner')
    and      not exists
      (select null
       from   user_synonyms u_s
       where  u_s.table_owner = a_s.owner
       and    u_s.table_name  = a_s.synonym_name)
    order by a_s.synonym_name
    /
    prompt spool off
    spool off

    @&v_create_syn_command_file.

  • 相关阅读:
    基于Form组件实现的增删改和基于ModelForm实现的增删改
    Git和Github的基本操作
    如果获取的数据不是直接可以展示的结构---三种操作方式
    可迭代对象和迭代器生成器
    django之整体复习
    权限管理之大致流程
    kindedit编辑器和xxs攻击防护(BeautifulSoup)的简单使用
    博客系统之评论树与评论楼相关操作
    中介模型以及优化查询以及CBV模式
    angularjs中ajax请求时传递参数的方法
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/5897016.html
Copyright © 2020-2023  润新知