Questions tagged «sqlplus»

Oracle命令行实用程序

4
如何使用sqlplus连接到位于另一主机上的Oracle数据库而不修改我自己的tnsnames.ora
我想使用sqlplus连接到位于另一台主机上的oracle数据库。该页面建议在我的tnsnames上添加一个项目以连接到该数据库 local_SID = (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521)) (CONNECT_DATA = (SID = remote_SID)) ) 然后在sqlplus中使用它 sqlplus user/pass@local_SID 但是,在我的情况下,无法修改本地tnsname。是否可以仅使用sqlplus参数连接到远程数据库,而不必更改tnsnames?就像是 sqlplus user/pass@remote_SID@hostname.network ;( I know, this one is not valid)
80 oracle  sqlplus 

3
如何使sqlplus输出显示在一行中?
我有一张有100列的桌子。在SQL Plus输出换行中选择数据时,很难读取。 我想要的是出现水平滚动条或以某种方式将输出发送到 less 我在SQLPlus中运行以下语句- SET LINESIZE 32000; SET PAGESIZE 40000; SET LONG 50000; SPOOL output.txt SELECT * FROM big_table; 然后bash我跑- 少output.txt 输出仍然显示为已包装且不可读。
46 oracle  sqlplus 

9
使用连接字符串从命令行连接到SQL Plus
假设我有一个Oracle数据库。我的用户名= x,密码= y,数据库= z。我也知道端口= a,SID = b,主机名= c。 那么,我该如何正确连接?我使用了很多选项,例如: sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))' sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b))) 提交这些命令行通常会给我返回错误消息,例如: ORA-12560:TNS:协议适配器错误 ORA-12514:TNS:侦听器当前不知道服务 提前谢谢了!!
41 oracle  sqlplus  string 

14
舒适的sqlplus接口?
我发现sqlplus“界面相当过时。有一些命令或关键字可供使用,这很好,但是例如,上一个历史记录条目没有“向上箭头”键可用。 什么是好的替代品/扩展名sqlplus?命令行实用程序可以是GUI或更高版本(因此通过SSH仍然有用)。 SQL * Plus是用于Oracle数据库的主要命令行工具。
21 oracle  tools  sqlplus 

3
如何区分SQL和PL / SQL?
我知道这个问题听起来太愚蠢了,但是我从不理解这部分。 SQL * Plus可与SQL和PL / SQL一起使用。我怎么知道某些代码是SQL还是PL / SQL?如果我的代码具有for循环,那么它不再是SQL吗? PL / SQL是SQL的扩展,使其具有循环,条件等。那么默认情况下,任何SQL代码是PL / SQL代码吗?是不是 SQL和PL / SQL之间是否有界线? 触发该问题的区分黑白SQL和PL / SQL的两个示例: 这两个create table语句有什么区别? /programming/2267386/oracle-11g-varray-of-objects/2267813#2267813

4
SQL * Plus命令末尾的分号的意义是什么?
有些语句(例如create table,insert into等)最后以分号表示: CREATE TABLE employees_demo ( employee_id NUMBER(6) , first_name VARCHAR2(20) , last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn_demo NOT NULL ) ; 而其他人喜欢 set echo on connect system/manager 也不要使用分号。 这背后的原因是什么?我如何决定自己将分号放在哪里?

4
使用包含空格,分号和正斜杠的SQLPlus执行脚本
有时候,我会获得一个脚本,该脚本可以在SQL Developer或Toad中正常运行,但是需要修改才能从SQL * Plus成功运行。这是最坏的情况示例,其中包含多个带有空行,分号和正斜杠的语句: INSERT INTO t1 VALUES ('a ; / '); INSERT INTO t1 VALUES ('b ; / '); DELETE FROM t1 WHERE c1 = 'c ; / '; 由于各种原因,这些语句需要从SQL * Plus运行。用简单的...即可轻松解决空白行。 set sqlblanklines on 我知道sqlterminator可以更改和/或关闭它们,但是两者都需要修改代码,前者在不解决问题的情况下解决了问题,也没有解决嵌入式斜杠问题。 最好的答案是一种通过以某种方式更改环境(如sqlblanklines所做的那样)而无需修改即可运行这些语句的方法。如果这不可能,那么也许可以通过编程方式修改脚本。我正在尝试避免手动更改。

1
为什么SQL * PLUS在CREATE TYPE之后需要一个斜杠?
我只是遇到了一个问题,我定义了一个Type并在TOAD中对其进行了测试,一切正常。但是在SQL * PLUS下运行会引发错误。 例: CREATE OR REPLACE TYPE MyType AS OBJECT ( Item1 NUMBER, Item2 NUMBER ); 由于某种原因,我必须在此处添加斜杠 CREATE OR REPLACE TYPE MyType AS OBJECT ( Item1 NUMBER, Item2 NUMBER ); / 对我来说,它看起来类似于Create Table语句,不需要斜线。我觉得这很混乱。我知道它是如何工作的,但是谁能解释为什么做出这个设计决定?




1
SQL * Plus,@和相对路径
某种程度上,似乎似乎SQL * Plus(至少在Windows上)在用调用@@以及路径以单点或双点开头时无法找到具有相对路径的脚本。 例如,在x:\some\where下面,我具有以下目录结构: script.sql main-dir\main-sub-dir call-script.sql script.sql 也就是说:两个,script.sql但位置不同。 script.sql正下方的内容x:\some\where很简单 prompt SCRIPT root 而对方script.sql的内容是 prompt SCRIPT main-dir/main-subdir call-script.sql 读 @@script.sql @ script.sql 预期产量 如果我从中启动SQL * Plus x:\some\where,然后执行 @main-dir/main-sub-dir/call-scripts 输出将是 SCRIPT main-dir/main-subdir SCRIPT root 这是预料之中的,因为该单曲@应该从SQL * Plus的起始位置@@搜索路径,并且应该从包含脚本的目录中搜索路径。 意外的输出 现在,如果我更改为call-scripts.sql: @@./script.sql @ ./script.sql double @@似乎改变了它的行为,因为它从SQL * Plus的起始位置搜索路径,现在输出为 SCRIPT root SCRIPT root 这不是我所期望的。 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.