前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle SQLPlus 客户端使用指南

Oracle SQLPlus 客户端使用指南

作者头像
运维开发王义杰
发布2023-08-15 14:41:05
1.4K0
发布2023-08-15 14:41:05
举报

SQLPlus 是 Oracle 数据库的命令行工具,用于执行 SQL 和 PL/SQL 命令。它是数据库管理员和开发人员的重要工具。本篇文章将详细介绍如何使用 SQLPlus,包括其子命令、参数以及登录过程。

1. 登录 SQLPlus

登录 SQLPlus 是最基础也是最关键的步骤。需要ORACLE_SID 和ORACLE_HOME环境变量,如果这些变量没有被设置或设置不正确,请为其设置正确的值。

代码语言:javascript
复制
echo $ORACLE_SID
echo $ORACLE_HOME

当我们使用 SQLPlus 连接到数据库时,可以采用多种格式来指定连接字符串。一般的格式为:

代码语言:javascript
复制
sqlplus <username>/<password>@<connect_string>

其中:

  • <username> 是你要连接的数据库用户名称。
  • <password> 是对应的用户密码。
  • <connect_string> 是连接字符串,通常指定为 TNS 名称或是一个完整的连接描述。

其中,关于 AS 关键字,它通常用于以特定的权限或角色连接到数据库

以下是几种常见的登录方式:

  1. 使用用户名和密码:
代码语言:javascript
复制
sqlplus username/password

2. 使用服务名:

代码语言:javascript
复制
sqlplus username/password@service_name

3. 无密码登录:

代码语言:javascript
复制
sqlplus / as sysdba

请注意:为了安全起见,建议避免在命令行中直接输入密码。你可以仅输入 sqlplus,然后在提示时输入用户名和密码。

4.通过 TNSNAMES.ORA 文件

首先,确保你的 tnsnames.ora 文件中已经定义了相关的 SID。该文件通常位于 $ORACLE_HOME/network/admin/ 目录下。例如,你可能有一个如下的条目:

代码语言:javascript
复制
MYDB_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = MyDB)
    )
  )

然后,在 SQLPlus 中使用以下命令连接:

代码语言:javascript
复制
sqlplus username/password@MYDB_SID

5. 使用 Easy Connect (EZCONNECT)

Oracle 提供了一个简化的连接方法,称为 Easy Connect。这允许你直接在连接字符串中指定主机、端口和 SID 或服务名,而不需要 tnsnames.ora 文件中的定义。

例如:

代码语言:javascript
复制
sqlplus username/password@MyHost:1521/MyDB

6. 使用完整的连接描述

还可以直接在 SQLPlus 命令行中提供完整的连接描述,无需依赖外部文件,例如:

代码语言:javascript
复制
sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=1521))(CONNECT_DATA=(SID=MyDB)))

请注意,尽管这样做是可行的,但它通常不是首选方法,因为这样的连接字符串会变得很长。

2. SQLPlus 子命令

SQLPlus 提供了一系列的子命令,使你可以更容易地管理和查询数据库。以下是一些常用子命令:

  • DESCRIBE (或 DESC):显示一个表、视图或其他对象的结构。
代码语言:javascript
复制
DESC tablename

SET:更改 SQL*Plus 的环境设置。

代码语言:javascript
复制
SET LINESIZE 200

SHOW:显示当前 SQLPlus 环境的某些参数。

代码语言:javascript
复制
SHOW USER

EXIT (或 QUIT):退出 SQL*Plus。

SPOOL:将输出定向到一个文件。

代码语言:javascript
复制
SPOOL filename.log

CONNECT:使用不同的用户名、密码和/或服务名重新连接。

EDIT (或 ED):编辑 SQL 缓冲区中的命令。

以上只是 SQLPlus 提供的子命令的一部分,具体的子命令和详细参数建议查阅官方文档。

3. 参数

SQLPlus 还提供了一系列的启动参数,这些参数允许你更改其默认行为。以下是一些常用参数:

  • -S:启动 SQLPlus 但不显示 SQLPlus 的启动消息。
  • -L:尝试登录一次。如果失败,SQL*Plus 将不再尝试并立即退出。
  • -M:设置 SQL*Plus 命令行模式。

4. SQL*Plus 脚本执行

你可以使用 @ 符号来执行外部的 .sql 文件。例如:

代码语言:javascript
复制
@/path/to/your_script.sql

5. 调整输出格式

你可以使用各种 SQLPlus 子命令来调整查询的输出格式,如 SET LINESIZESET PAGESIZECOLUMN 命令。

6.查看监听器状态:

可以使用 lsnrctl 命令来查看监听器的状态。在该状态输出中有服务名或数据库别名。

代码语言:javascript
复制
lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-AUG-2023 02:05:43

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                07-AUG-2023 01:48:10
Uptime                    0 days 0 hr. 17 min. 33 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/52e52272aea8/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully

从上面的 lsnrctl status 输出中,我们可以清晰地看到以下关键信息:

  1. 监听器的别名:LISTENER
  2. 版本信息:19.0.0.0.0
  3. 开始日期:07-AUG-2023 01:48:10
  4. 运行时间:0 天 0 小时 17 分 33 秒
  5. 监听器参数文件:/opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
  6. 监听器日志文件:/opt/oracle/diag/tnslsnr/52e52272aea8/listener/alert/log.xml
  7. 监听的端点:
    • 使用 IPC 协议与关键词 EXTPROC1
    • 使用 TCP 协议,在 0.0.0.0 地址上的 1521 端口
  8. 服务摘要:
    • 服务名 "ORCLCDB"
    • 实例名 "ORCLCDB",状态为 READY

总结

SQLPlus 是一个功能强大的命令行工具,提供了许多子命令和参数来帮助你更有效地管理和查询 Oracle 数据库。希望本文能帮助你更深入地了解和使用 SQLPlus。如果你有任何问题或需要进一步的帮助,请随时留言或咨询。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQLPlus 是 Oracle 数据库的命令行工具,用于执行 SQL 和 PL/SQL 命令。它是数据库管理员和开发人员的重要工具。本篇文章将详细介绍如何使用 SQLPlus,包括其子命令、参数以及登录过程。
    • 1. 登录 SQLPlus
      • 6. 使用完整的连接描述
        • 2. SQLPlus 子命令
          • 3. 参数
            • 4. SQL*Plus 脚本执行
              • 5. 调整输出格式
                • 总结
                相关产品与服务
                命令行工具
                腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档