标签: sqlplus

How to use sqlplus to connect to an Oracle Database located on another host without modifying my own tnsnames.ora

I want to connect to an oracle database located on another host using sqlplus. This page suggested adding an item on my tnsnames to conenct to that database

local_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
    (CONNECT_DATA = (SID = remote_SID))
  )
Run Code Online (Sandbox Code Playgroud)

and then use that in sqlplus

sqlplus user/pass@local_SID
Run Code Online (Sandbox Code Playgroud)

However, in my circumstances modifying the local tnsnames is not possible. Is it possible to connect to a remote database just by using sqlplus argument without having to …

oracle sqlplus

91
推荐指数
4
解决办法
85万
查看次数

如何使sqlplus输出出现在一行中?

我有一张有 100 列的表格。在SQL Plus输出换行中选择数据时,使其难以阅读。

我更喜欢的是出现一个水平滚动条,或者以某种方式将输出发送到 less

我在 SQLPlus 中运行以下语句 -

SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;
Run Code Online (Sandbox Code Playgroud)

然后在bash我跑 -

少输出.txt

输出仍然显示为已包装且不可读。

oracle sqlplus

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

使用连接字符串从命令行连接到 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)))
Run Code Online (Sandbox Code Playgroud)

提交这些命令行通常会给我返回错误消息,例如:

ORA-12560:TNS:协议适配器错误
ORA-12514:TNS:侦听器当前不知道服务

提前谢谢了!!

oracle sqlplus string

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

舒适的sqlplus界面?

我发现sqlplus'界面已经过时了。有一些命令或关键字可供使用是非常好的,但例如没有可用的前一个历史条目的“向上箭头”键。

什么是好的替代品/扩展sqlplus?可能是 GUI 或更好的(因此它通过 SSH 保持有用)命令行实用程序。

SQL*Plus是用于操作 Oracle 数据库的主要命令行工具。

oracle tools sqlplus

21
推荐指数
5
解决办法
6966
查看次数

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
    ) ;
Run Code Online (Sandbox Code Playgroud)

而其他人喜欢

set echo on
connect system/manager
Run Code Online (Sandbox Code Playgroud)

也不要分号。

这背后的原因是什么?我如何决定自己在哪里放分号,在哪里不放?

oracle oracle-11g-r2 sqlplus

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

如何区分 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 语句有什么区别?

/sf/ask/158717051/#2267813

oracle oracle-11g-r2 sqlplus plsql

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

SQL*Plus 的 Rem 和 -- 注释之间有什么区别吗?

在 SQL*Plus 提示符下,Rem和 都--可以作为注释指示符:

Rem this is a comment
-- this is also a comment
create table emp (
id number primary key,
name cvarchar2(40));
Run Code Online (Sandbox Code Playgroud)

这两种评论技术有什么区别吗?

oracle oracle-11g sqlplus

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

使用包含空格、分号和正斜杠的 SQLPlus 执行脚本

有时我会得到一个可以在 SQL Developer 或 Toad 中正常运行的脚本,但需要修改才能从 SQL*Plus 中成功运行。这是一个最坏的例子,其中包含多个语句,每个语句都带有空行、分号和正斜杠:

INSERT INTO t1 VALUES ('a

;
/
');

INSERT INTO t1 VALUES ('b

;
/
');

DELETE FROM t1 WHERE c1 = 'c

;
/
';
Run Code Online (Sandbox Code Playgroud)

由于各种原因,这些语句需要从 SQL*Plus 运行。空行很容易用一个简单的...

set sqlblanklines on
Run Code Online (Sandbox Code Playgroud)

我知道 sqlterminator可以更改和/或关闭,但两者都需要修改代码,前者移动问题而不解决它,也不能解决嵌入的斜杠问题。

最好的答案是通过以某种方式改变环境(如 sqlblanklines 所做的),允许这些语句在不修改的情况下运行。如果这是不可能的,那么也许有一种方法可以以编程方式修改脚本。我试图避免手动更改。

oracle oracle-11g-r2 sqlplus

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

为什么 SQL*PLUS 在 CREATE TYPE 后需要一个斜线?

我只是遇到了问题,我定义了一个类型并在 TOAD 中对其进行了测试,一切正常。但是在 SQL*PLUS 下运行它抛出了一个错误。

例子:

CREATE OR REPLACE TYPE MyType AS OBJECT (
    Item1 NUMBER,
    Item2 NUMBER
);
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我必须在这里添加斜线

CREATE OR REPLACE TYPE MyType AS OBJECT (
    Item1 NUMBER,
    Item2 NUMBER
);
/
Run Code Online (Sandbox Code Playgroud)

对我来说,它看起来类似于不需要斜线的 Create Table 语句。我觉得比较混乱。我知道它是如何工作的,但谁能解释为什么做出这个设计决定?

oracle sqlplus user-defined-type

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

如何设置 Oracle 用户的默认架构?

我在 Oracle 中创建了一些新用户。但是,在运行sqlplus时,它们都需要完全限定查询中的表名。为这些新用户设置默认架构的最佳方法是什么?

oracle sqlplus

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