标签: sqlplus

sqplplus - 回显当前登录信息

有没有办法在sqlplus中回显/打印当前连接字符串?我有一个将在多个数据库中运行的脚本,我想在顶部看到一行:

Currently executing test_script.SQL as USER1@MY_DB

如果有一种方法可以做到这一点,而不必更改文件本身,这将是非常方便的.

oracle sqlplus oracle10g

1
推荐指数
1
解决办法
493
查看次数

pl/sql中以下声明类型有什么区别?

1:名称varchar2(30):='uu'|| '&(emp name)';
2:名称varchar2(30):='uu'|| '&emp name';

我不知道差异()是什么.
在第一种情况下,name = uu&(emo名称和
第二种情况,它促使用户输入值.
请任何机构解释我这背后的概念.

oracle variables plsql sqlplus declaration

1
推荐指数
1
解决办法
82
查看次数

在sqlplus命令模式下声明游标

我有一个使用声明游标的SQL文件,我使用@abc运行它,但它没有执行所有语句并等待而不返回命令提示符.声明游标语句后它没有继续.当我尝试在命令模式下运行declare cursor语句时,再次发生同样的问题.我只能在按Ctrl + C后返回SQL priompt.我对SQL世界很新.虽然这可能是一个基本错误,但我无法在任何网站找到解决方案.任何帮助是极大的赞赏.

SQL> DECLARE CURSOR id_cursor IS SELECT id FROM user_names WHERE dept_no = 1002 
AND BITAND(flags, 4) = 4 AND time_created BETWEEN 1137974400 AND 1326067199;
  2
  3
  4  ;
  5
  6
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus

1
推荐指数
1
解决办法
1万
查看次数

Oracle 10g:启动安装命令问题(ORA-24324,ORA-01041)

我想在我的oracle db中禁用存档日志.但是当我关机并尝试安装数据库时,我收到以下错误.

C:\>sqlplus scott/tiger@ORCL as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 18 10:44:17 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
SQL> startup mount
ORA-24324: service handle not initialized
ORA-01041: internal …
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus oracle10g

1
推荐指数
1
解决办法
3万
查看次数

在sqlplus输入文件中参数化表名

我试图使用sqlplus和Oracle假脱机功能导出一些数据.问题是我定义导出的SQL输入文件不允许我参数化我从中导出数据的表名 - 它想要一个文字:(

在shell脚本中调用sqlplus:

sqlplus $USER/$PASSWD@$ORADB<<!

@export.sql $OUT_FILE $SOME_VAR $ENV

exit
!
Run Code Online (Sandbox Code Playgroud)

export.sql:

set heading off
set head off
set term off
set tab off
set embedded on
set feedback off
set pagesize 0
set linesize 800
set trimspool on
set verify off

spool &1

SELECT '&2|' || some_col
FROM &3_TABLE
/
spool off
Run Code Online (Sandbox Code Playgroud)

当$ ENV设置为'dev'时,我明白了

Enter value for 3_TABLE 
Run Code Online (Sandbox Code Playgroud)

而我希望它使用dev_TABLE.当我取消参数化sql文件中的表名时,输出运行正常.另请注意,有一个param&2,它是来自shell的$ SOME_VAR,它显示得很好.唯一的问题是在FROM语句中.

有没有办法告诉sql输入文件在运行SQL之前替换参数化表名?

谢谢

oracle plsql sqlplus

1
推荐指数
1
解决办法
2333
查看次数

Oracle PL/SQL代码中的神秘声明

&nOracle PL/SQL中的这个声明是什么意思?代码示例中的用法(取自此处)如下所示:

DECLARE
    myex EXCEPTION;
    PRAGMA EXCEPTION_INIT(myex,-20015); 
    n NUMBER := &n;
BEGIN
    FOR i IN 1..n LOOP
        dbms_output.put.line(i);
        IF i=n THEN
            RAISE myex;
        END IF;
    END LOOP;
EXCEPTION
    WHEN myex THEN
        dbms_output.put.line('loop is end');
END;
Run Code Online (Sandbox Code Playgroud)

oracle plsql sqlplus

1
推荐指数
1
解决办法
101
查看次数

在UNIX脚本中使用SQLPLUS命令

我试图理解一个简单的脚本,它使用unix中的sqlplus命令连接到Oracle数据库:

1 sqlplus -s /nolog > /dev/null 2>&1 <<EOF
2 whenever sqlerror exit failure
3 connect $user_pwd
4 exit success
5 EOF
Run Code Online (Sandbox Code Playgroud)

如果我正在使用unix,那么我使用命令sqlplus $user_pwd连接到oracle数据库并且sqlplus使用命令exit.请帮助我理解1,2,4,5行.对于专家来说这可能是一个简单的问题,但我无法理解何时使用这些问题.

unix oracle bash sqlplus

1
推荐指数
1
解决办法
3369
查看次数

如何获取oracle架构11g中的外部表列表

我想在oracle中获取仅外部表的列表.我试图使用Select*from选项卡获取列表.但它返回所有表的列表,包括实际和外部.但我只想要外部表的列表

sql database oracle sqlplus oracle11g

1
推荐指数
1
解决办法
6814
查看次数

sqlplus删除额外的空格

我有一个下面的测试ksh文件

#!/bin/ksh
(
sqlplus -s << EOF
    ${DATABASE}
    SET SERVEROUTPUT ON;
    SET HEAD OFF
    SET FEED OFF
    SET DEFINE OFF
    SET PAGES 0
    SET COLSEP ";"
    WHENEVER SQLERROR EXIT SQL.SQLCODE      
    SELECT 'aaaa  vvvv   cccc'  FROM DUAL;          
    EXIT
EOF
) | while read sql_out
    do
        echo ${sql_out} 
    done
Run Code Online (Sandbox Code Playgroud)

预期的产出是

aaaa  vvvv   cccc
Run Code Online (Sandbox Code Playgroud)

但观察到的输出是

aaaa vvvv cccc
Run Code Online (Sandbox Code Playgroud)

Sqlplus正在从我的输出中删除额外的空格,我想保留它.

unix oracle bash whitespace sqlplus

1
推荐指数
1
解决办法
87
查看次数

如何在Oracle SQL中对整数进行除法以产生浮点数?

我刚刚开始学习Oracle SQL。我想将两列numeric数据类型划分为一个整数。我想在表或float数据类型中创建一个新列,将现有numeric列除以整数,然后将其值放入该float列中。我将这段代码用于除法和更新部分:

update Student set AVERAGE = TOTAL/3;
Run Code Online (Sandbox Code Playgroud)

在这里,TOTALnumeric列,AVERAGEfloat。但是当我使用以下命令打印表格时:

select * from Student;
Run Code Online (Sandbox Code Playgroud)

AVERAGE显示为除法的舍入值。我尝试了两种在互联网上找到的解决方案:

update Student set AVERAGE = (TOTAL*1.00)/3;
Run Code Online (Sandbox Code Playgroud)

和:

update Student set AVERAGE = cast(TOTAL as float(2))/3;
Run Code Online (Sandbox Code Playgroud)

但是两者都不起作用。我究竟做错了什么?这是我得到的输出:

 ROLL_NO SNAME                MATHS       CHEM        PHY      TOTAL    AVERAGE
---------- --------------- ---------- ---------- ---------- ---------- ----------
       101 abcd                    56         68         80        204         70
       102 efgh                    81         78         70        229         80
       103 ijkl                    69         73 …
Run Code Online (Sandbox Code Playgroud)

sql oracle sqlplus

1
推荐指数
1
解决办法
395
查看次数

标签 统计

oracle ×10

sqlplus ×10

plsql ×3

bash ×2

oracle10g ×2

sql ×2

unix ×2

database ×1

declaration ×1

oracle11g ×1

variables ×1

whitespace ×1