美文网首页
shell中调用sqlplus执行SQL文件并替换SQL中参数值

shell中调用sqlplus执行SQL文件并替换SQL中参数值

作者: 马云生 | 来源:发表于2022-04-27 18:12 被阅读0次

    实现shell中调用sqlplus执行SQL文件并替换SQL中参数值

    第一种方法:

    #!/bin/bash

    .....(略)

    CONN_STRING="" #数据库连接字符串   用户/密码@连接串

    name="zhang"

    sql_update="update.sql" #sql文件存在于此shell同一目录下,sql中两个参数:x_trg_no 和: name

    sqlplus -s /nolog <<EOF!

         conn ${CONN_STRING}

        variable x_trg_no NUMBER

        variable name varchar2(50)

        exec :x_trg_no :=20

        exec : name :=${name} 

         @./${sql_update}

        disconnect

       quit

    EOF! #这里必须在行首

    第二种方法:

      ※通过调用SQL文件时后面直接给参数值,按照顺序在SQL中可以通过&1    &2 ・・・・・接参数

    #!/bin/bash

    .....(略)

    CONN_STRING="" #数据库连接字符串   用户/密码@连接串

    sql_update="update.sql" #sql文件存在于此shell同一目录下,sql中两个参数写成‘&1’ 和&2

    sqlplus -s /nolog <<EOF!

         conn ${CONN_STRING}

         @./${sql_update}  zhang  20 

        disconnect 

         quit

    EOF! #这里必须在行首

    第三种方法:

    脚本中定义

    格式:define 标识符 = 值

     如: define n=12

     define s=’hello’ --是否加引号没有关系

    通过加&引用 如: 

    select &n from dual; 

    select ‘&s’ from dual; --注意必须要加引号 

    begin dbms_output.put_line('&s'); 

    end; 

    取消定义的方法是:undefine标识符

    相关文章

      网友评论

          本文标题:shell中调用sqlplus执行SQL文件并替换SQL中参数值

          本文链接:https://www.haomeiwen.com/subject/ifelyrtx.html