精华内容
下载资源
问答
  • 1.与spool一样,linux中调用sqlplus的时候sql语句前不能有tab字符,也不能有空白行。 2.sh中定义变量为:变量名=赋值,sqlplus中引用时用:'${变量名}' 示例如下: ORACLE_HOME=/app/product/11.2.0/db ORACLE_...

    1.与spool一样,linux中调用sqlplus的时候sql语句前不能有tab字符,也不能有空白行。

    2.sh中定义变量为:变量名=赋值,sqlplus中引用时用:'${变量名}',例如year=2020,'$year'相当于为'2020',$year相当于2020

    shell脚本示例如下:

    ORACLE_HOME=/app/product/11.2.0/db
    ORACLE_BASE=/app/oracle
    ORACLE_SID=对应数据库名称
    year=$(/bin/date +%y%y)
    echo $year
    startdate="$year-01-01"
    enddate="$year-12-31"
    export ORACLE_HOME ORACLE_BASE ORACLE_SID
    PATH=$ORACLE_HOME/bin:/user/bin:/etc:/user/sbin:.

    sqlplus  数据库用户/数据库密码<<!

    delete from   nx_prp_claim where DF_YEAR='$year';
    insert into nx_prp_claim 
    select DF_YEAR,COMCODE,classcode,RISKCODE,QUANTITY,AMOUNT,PREMIUM,LOSSQUANTITY,SUMREALPAY,SUMPAID
    ,decode(nvl(PREMIUM,0),0,0,round(nvl(SUMPAID,0)/PREMIUM,4)) as claimrate
    ,decode(nvl(QUANTITY,0),0,0,round(nvl(LOSSQUANTITY,0)/QUANTITY,4)) as deathrate
    from (
    select  
    zzz.DF_YEAR
    ,zzz.COMCODE
    ,zzz.classcode 
    ,zzz.RISKCODE 
    ,zzz.QUANTITY
    ,zzz.AMOUNT
    ,zzz.PREMIUM
    ,zzz.LOSSQUANTITY
    ,zzz.SUMREALPAY
    ,nvl(ccc.SUMPAID,0) as SUMPAID 
    from 
    (

    ……

    commit;
    exit
    !
     

    展开全文
  • 某组服务器上的sqlplus执行定时更新SQL脚本时,中文出现乱码。一开始找错了问题方向:从SQL更新脚本处理的源头开始,首先对windows下的编辑器生成的脚本文件做各种编码的尝试,然后又在vi编辑器里面进行字符编码...

    某组服务器上的sqlplus在执行定时更新SQL脚本时,中文出现乱码。一开始找错了问题方向:从SQL更新脚本处理的源头开始,首先对windows下的编辑器生成的脚本文件做各种编码的尝试,然后又在vi编辑器里面进行字符编码(encoding)与文件编码(fileencoding)的各种调试。后来发现转了圈,不过并不算浪费时间,最起码对字符编码多了一些了解。

    我是通过如下的方法解决sqlplus执行SQL脚本出现的中文乱码问题:

    1.生产环境中的字符集全是UTF8,所以对于上传至服务器上的脚本都以'UTF8 without BOM'保存

    2.查看Oracle的字符集编码:

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')

    ----------------------------------------------------

    AMERICAN_AMERICA.AL32UTF8

    SQL>

    3.修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:

    export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

    4.执行.bash_profile,使环境变量设置生效,查看其值:

    $ echo $NLS_LANG

    AMERICAN_AMERICA.AL32UTF8

    至此,此次中文乱码的问题得已解决。

    推荐一篇文章,是介绍Vim 中与编码有关的四个选项的,如不是很清楚它们之间关系的可以访问以下网址读一下:

    参考来源:

    展开全文
  • root用户执行以下脚本 #!/bin/bash su - oracle -c "sqlplus / as sysdba < select * from tab; exit EOF" >...
    root用户执行以下脚本
    #!/bin/bash
    su - oracle -c "sqlplus / as sysdba <
    select * from tab;
    exit
    EOF" > /home/oracle/111.txt  2>&1


    开机自启动ORACLE
    vi /home/oracle/start_db.sh

    #!/bin/bash
    su - oracle <
    lsnrctl start
    sqlplus / as sysdba
    spool /home/oracle/start.log
    startup
    spool off
    exit
    EO


    vi /etc/rc.local
    sh /home/oracle/start_db.sh





    测试:
    在oracle用户下
    sqlplus -s scott/tiger@oracle < SELECT TABLESPACE_NAME,
    TABLESPACE_SIZE/1024/1024/1024 as "TABLESPACE_SIZE(G)",
    ALLOCATED_SPACE/1024/1024/1024  as "ALLOCATED_SPACE (G)",
    FREE_SPACE/1024/1024/1024 as "FREE_SPACE(G)"
     from DBA_TEMP_FREE_SPACE
    exit
    EOF>>  /home/oracle/TEMP_FREE_SPACE_CHECK.txt

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28371090/viewspace-765949/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/28371090/viewspace-765949/

    展开全文
  • 1.查看Oracle的字符集编码: ...2.修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下: export NLS_LANG=“AMERICAN_AMERICA.AL32UTF8” 3.执行source .bash_profile,使

    1.查看Oracle的字符集编码:

    SQL> select userenv(‘language’) from dual;

    USERENV(‘LANGUAGE’)


    AMERICAN_AMERICA.AL32UTF8

    SQL>
    2.修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:

    export NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”
    3.执行source .bash_profile,使环境变量设置生效,查看其值:

    $ echo $NLS_LANG

    AMERICAN_AMERICA.AL32UTF8
    至此,此次中文乱码的问题得已解决。

    展开全文
  • 但是在Linux下,会出现各种乱码,非常不方便,如下图所示,每次打错一个字符就需要重新打一遍。解决办法:rlwrap 可以用来支持Oracle下sqlplus历史命令的回调功能,提高效率。解决过程:1、首先下载rlwrap和readline...
  • 今天编写shell 脚本,查看 stty 命令发现root下erase = ^H,而在oracle用户下erase = ^? 在oracle下设置erase为^H,stty erase ^h 然后sqlplus 删除用backspace就可以了
  • 三、使用sqlplus执行sql脚本,运行时会不断显示行号,显示不了结果输出,如下图所示。 四、解决方法: 在sql脚本的最后用"/" 符号结尾。 --创建函数 CREATE OR REPLACE function fun_createuid1 return varchar2 is ...
  • -bash-3.2$ more gene.sh sqlplus '/ as sysdba'<set pagesize 200 heading off feedback offspool /oracle/test.shs...
  • 如何在sqlplus执行sql脚本 [1]登陆Sqlplus 请输入用户名sys/admin@orclassysdba 成功后,可以执行导入 [2]执行 SQL>@c:\sql\unitdata.sql  如果是在linux执行start/tmp/shp/beijing_region.shp ...
  • 在Windows操作系统上,当在DOS命令窗口中运行SQL*Plus的时候,可以使用向上,向下键来跳回之前已经执行过的SQL语句.你可以根据需要修改他们,然后按Enter键重新提交执行.然而,当在Linux Shell中运行SQL*Plus的时候,并不...
  • redhat linux执行oracle的dbstart脚本没有反应原因:1./etc/oratab的设置问题,比如:*:/opt/oracle/product/9.2.0.4:NORCL:/opt/oracle/product/9.2.0.4:Y最右侧是N的,dbstart不会管它,dbstart只启动为Y的。...
  • 1.定时任务在执行的时候不会读入用户的环境变量 所以需要自己声明 ...2.在定时任务中执行sqlplus,ctl文件不能用./这样的相对路径,要用绝对路径。 要么直接把路径全都写上去,要么在前面声明变量,传入参数。 ...
  • linux shell执行SQL脚本

    2015-07-15 14:25:00
    #!/bin/sh user="user" pass="pass" sqlplus -S $user/$pass select 1 from dual; exit; 转载于:https://www.cnblogs.com/songjinduo/p/4648217.html
  • 在没有加入crontab定时器时,执行任务杠杠的,刚加入到crontab定时器中就报错!!! sqlplus: 未找到命令! java: 未找到命令!...#例如:当前用户是oracle用户执行脚本(用户是指linux系统用户) ...
  • Linux环境执行oracle脚本乱码问题解决

    千次阅读 2019-05-06 16:31:55
    问题:在linux操作系统下,使用shell命令执行oracle sql文件,出现中文乱码问题 解决办法: 1、获取数据库字符集 [oracle@ams ~]sqlplus "/as sysdba" SQL>select userenv('language') from dual; USERENV('...
  • 定义一个脚本.sh文件   然后执行sqlplus执行的目录: #!/bin/sh #@echo off echo ################################################### echo # Author :ZhouHaiTao ...
  • 1、登陆oracle用户(在linux上的安装用户)。 2、将脚本上传至oracle用户目录下。 3、cd 进入SQL脚本所在目录 4、登录数据库:sqlplus /nolog 登陆sqlplus,然后:conn username/password@IP...6、@test.sql //执行te..
  • 借助于Linux系统的特点,可以非常快速的将脚本执行完。 准备sh脚本文件 sqLpLus -S scott/'"Password"'@127.0.0.12/scott <<EOF set heading off feedback off pagesize 0 verify off echo o0ff alter ...
  • crontab中执行sqlplus失效

    千次阅读 2012-11-05 11:06:04
    相关文章: crontab的进程里面无法使用...crontab中执行sqlplus失效,环境变量的缘故。crontab跟shell的环境变量是不一样的。所以要在脚本中加入 . /root/.bashrc 以导入环境变量。(可能不同的linux系统使用的配置文件
  • Linux和windows下执行sql脚本文件 利用 sqlplus 登录数据库之后 键入: @/全路径/文件名 即可执行*.sql 文件 例 假设有一个 test.sql 文件 所在路径是/home/oracle/ 现在要执行它 1 登录数据库 s...
  • Linux执行Oracle的sql脚本 登录服务器,切换oracle账户(在Linux上的安装用户) root用户登录后,输入: su – oracle 回车(Oracle为Oracle数据库安装用户,必须有横杠: - ) 将脚本上传至oracle用户目录下,例...
  • 如题所示,在安装了oracle的Linux服务器上执行脚本时出现如题的错误: 1 2 [oracle@hp-dbtest]$./getSysdate.sh ./getSysdate.sh:line10:sqlplus:commandnotfound 问题分析: 情况一:使用root用户...
  • 一、简单后台执行。 ...今天打算写个后台执行清理单张表和备份sql脚本。发现一直报错,网上也没有具体的修改方法。 后来到别的博客去看看,有别的办法可以解决: 二、编写shell脚本和数据库...
  • crontab的进程里面无法使用...crontab中执行sqlplus失效,环境变量的缘故。crontab跟shell的环境变量是不一样的。所以要在脚本中加入 . /root/.bashrc 以导入环境变量。(可能不同的linux系统使用的配置文件名...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 135
精华内容 54
关键字:

linux执行sqlplus脚本

linux 订阅