标签: sqlplus

导出为插入语句:但在SQL Plus中,该行会覆盖2500个字符!

我必须将Oracle表导出为INSERT STATEMENTS.

但是生成的INSERT语句覆盖2500个字符.

我不得不在SQL Plus中执行它们,所以我收到一条错误消息.

这是我的Oracle表:

CREATE TABLE SAMPLE_TABLE
(
   C01   VARCHAR2 (5 BYTE) NOT NULL,
   C02   NUMBER (10) NOT NULL,
   C03   NUMBER (5) NOT NULL,
   C04   NUMBER (5) NOT NULL,
   C05   VARCHAR2 (20 BYTE) NOT NULL,
   c06   VARCHAR2 (200 BYTE) NOT NULL,
   c07   VARCHAR2 (200 BYTE) NOT NULL,
   c08   NUMBER (5) NOT NULL,
   c09   NUMBER (10) NOT NULL,
   c10   VARCHAR2 (80 BYTE),
   c11   VARCHAR2 (200 BYTE),
   c12   VARCHAR2 (200 BYTE),
   c13   VARCHAR2 (4000 BYTE),
   c14   VARCHAR2 (1 BYTE) DEFAULT …
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus

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

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

SQL*Plus中的清除屏幕

我正在运行以下报告但收到错误

/* Simple table formatting */

clear screen;
accept Report_File char prompt 'Enter a file name for summary report ';

/*Set up column headers*/
col StoreCode format A8 heading 'Store Code';
col DESCRIPTION format A8 heading 'Item Description';
col PRICE format $999999.99 heading 'Price';
col QUANTITY format 999 heading 'Quantity';
col (Price*Quantity) format $999999.99 heading 'Value';

/*Format and title pages */

set Pause off;
set Feedback off;
set Space 6;
set newpage 2;
set pagesize 54;
set linesize 200;
set …
Run Code Online (Sandbox Code Playgroud)

sql oracle sqlplus

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

为什么确定性函数在SQL中执行额外的时间?

鉴于下表

create table tmp_test as
 select mod(level, 5) as n
   from dual
connect by level <= 10
        ;
Run Code Online (Sandbox Code Playgroud)

和这个功能

create or replace function test_deterministic (Pn in number
         ) return number deterministic is
begin
   dbms_output.put_line(Pn);
   dbms_lock.sleep(1);
   return Pn;
end;
Run Code Online (Sandbox Code Playgroud)

它执行6次,耗时6秒:

SQL> select test_deterministic(n) from tmp_test;

TEST_DETERMINISTIC(N)
---------------------
                    1
                    2
                    3
                    4
                    0
                    1
                    2
                    3
                    4
                    0

10 rows selected.

1
2
3
4
0
1
Elapsed: 00:00:06.02
Run Code Online (Sandbox Code Playgroud)

我本来希望这次执行5次.如果我在SQL Developer或PL/SQL Developer中运行此SELECT语句,它只执行5次.同样,如果我在Pl/SQL中运行它,它会执行5次:

SQL> begin
  2     for i in ( select test_deterministic(n) from …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql sqlplus deterministic

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

SQL Plus命令行:箭头键不返回先前的命令

我在Fedora core 5 32+ bit操作系统上使用Oracle 10g Express Edition。问题是当我使用SQL Plus命令行制作SQL语句时,当我使用键盘上的向上和向下箭头键时,无法在提示符下找回先前键入的命令。当我使用外壳程序时,这非常容易,但是在此使用此Oracle命令行界面时,它根本无法工作。这是当我按向上或向下箭头键实际发生的情况的示例。

SQL>删除表邮件订单;

桌子掉了。

SQL> ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A ^ [[A

linux sqlplus

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

防止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
推荐指数
1
解决办法
4464
查看次数

将国家字符插入oracle NCHAR或NVARCHAR列不起作用

在oracle数据库中插入字符串时,一些国家字符会被问号替换,即使它们插入NCHAR或NVARCHAR列 - 应该能够处理所有Unicode字符.

使用Oracle的SQL Developer,sqlplus或使用JDBC驱动程序会发生这种情况.

数据库NLS_CHARACTERSET设置为WE8ISO8859P1(西欧iso-8859-1).用于NCHAR列的NLS_NCHAR_CHARACTERSET设置为AL16UTF16.(UTF-16)

任何不在NLS_CHARACTERSET中的字符似乎都被替换为反转的问号.

java oracle unicode nvarchar sqlplus

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