标签: sqlplus

防止sqlplus截断列名,而不进行单独的列格式化

默认情况下,sqlplus会将列名截断为基础数据类型的长度.我们数据库中的许多列名都以表名为前缀,因此在截断时看起来相同.

我需要在锁定的生产环境中为远程DBA指定select*查询,并拖回假脱机结果以进行诊断.列太多,无法指定单个列格式.sqlplus是否提供统一阻止列名截断的任何选项?

(我使用SET MARKUP HTML ON,虽然我可以使用其他一些模态,csv等,只要它产生无缩写的输出.)

oracle sqlplus

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

Oracle sqlplus:从脚本位置开始的相对路径

当我有两个sql文件时,其中一个在子目录中

main_test.sql
sub/sub_test.sql
Run Code Online (Sandbox Code Playgroud)

sub_test.sql调用@../main_test.sql(或@@../main_test.sql)然后从子目录执行它时工作正常

sub> sqlplus xxx @ sub_test.sql
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时

sub> cd ..
> sqlplus xxx @ sub/sub_test.sql
Run Code Online (Sandbox Code Playgroud)

这导致了

SP2-0310: unable to open file "../main_test.sql"
Run Code Online (Sandbox Code Playgroud)

因为路径是从我的工作目录评估的,而不是我调用的sql文件的目录.

有没有办法从包含调用的文件目录开始使用相对路径?

sql sqlplus oracle10g

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

如何防止dbms_output.put_line修剪前导空格?

我试图右对齐某些PL/SQL代码的输出,但dbms_output.put_line正在修剪我的字符串中的前导空格.我怎么让它停下来?或者有更好的方法输出带有前导空格的字符串?

dbms_output.put_line(lpad('string', 30, ' '));
Run Code Online (Sandbox Code Playgroud)

输出:

string
Run Code Online (Sandbox Code Playgroud)

代替:

                        string
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql sqlplus

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

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

Oracle trimspool仅尾随空白(不是空白空格)

我想知道是否有任何技巧trimspool只能修剪右边的尾随空格.

我有使用dbms_output.put_line打印到控制台的代码,输出通常有缩进,以便更容易用眼睛扫描.我将线宽设置得相当大,以使一些输出更容易阅读,所以我还设置了trimspool以消除额外的空白区域.唯一的问题是现在领先的空间被删除以及尾随的空格.有没有办法来解决这个问题?我可以.在某些输出语句中添加一个前导(在前导空格之前)" "字符,但我不允许在大多数包中修改代码.


这是没有trimmimg输出的内容:

 level 1                          (EOL)
     level 2                      (EOL)
       Some data                  (EOL)

这是它目前输出的trimspool内容:

level 1(EOL)
level 2(EOL)
Some data(EOL)

这就是我想要的:

 level 1(EOL)
     level 2(EOL)
       Some data(EOL)

oracle sqlplus

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

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

在SQLPlus中格式化查询的输出

我正在使用SQLPlus,每当我查询数据库时,结果就完全混乱了.换句话说,很难阅读.我想知道是否有人知道如何格式化在Unix服务器上运行的SQLPlus中的查询(列,表等)的输出.但是,我从我的窗口访问服务器.

并且,有人能告诉我在哪里可以从Ubuntu获取SQLPlus吗?

干杯,

unix oracle ubuntu formatting sqlplus

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

SQL*Plus如何从提示中接受文本变量?

我是psql的初学者,我有一个问题.

这是代码:

SET serveroutput ON
ACCEPT myVariable PROMPT "Input value: ";

BEGIN
  dbms_output.put_line('My input variable is: '||&myVariable);
 END;
Run Code Online (Sandbox Code Playgroud)

问题很简单:如何将文本传递给我的变量?如果我输入一个数字它是正常工作,我可以在日志中读取我的号码,但如果我传递像"mytext"而不是数字的文本,我得到一个错误:

    old:BEGIN


     dbms_output.put_line('My input variable is: '||&myVariable);
     END;


    new:BEGIN

  dbms_output.put_line('My input variable is: '||mytext);
 END;

    Error starting at line 5 in command:
    BEGIN
      dbms_output.put_line('My input variable is: '||&myVariable);
     END;
    Error report:
    ORA-06550: 2 sor, 50 oszlop:
    PLS-00201: identifier 'MYTEXT' must be declared
    ORA-06550: 2 sor, 3 oszlop:
    PL/SQL: Statement ignored
    06550. 00000 -  "line %s, column %s:\n%s"
    *Cause:    Usually a PL/SQL compilation …
Run Code Online (Sandbox Code Playgroud)

oracle plsql sqlplus

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

在SQL Plus中显示为#的数字数据类型

数字数据类型显示为#而不是SQL Plus中的数字.

请参阅H_RATE以了解它正常显示的问题,我已经搜索了互联网和stackoverflow以查找simliar问题或答案,但没有相同的问题.

你可以帮忙解决它,以便显示数字而不是#?

屏幕截图关闭问题

oracle sqlplus

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

如何在sqlplus中撤销用户的所有权限?

如何在 SQLPlus 中撤销用户的所有权限?我已登录,sysdba并且我想撤销普通用户的所有权限。

我用谷歌搜索了这个查询

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
Run Code Online (Sandbox Code Playgroud)

但我不明白我应该为用户提供什么,等等。

oracle privileges ddl sqlplus sql-revoke

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