Oracle 使用SQL*Plus连接数据库

时间:2021-09-20 21:29:51

Oracle使用SQL*Plus连接数据库

by:授客 QQ1033553122

 

使用sqlplus连接数据库

A 方式1

1.开启SQL*Plus,但不连接到数据库

$ sqlplus /NOLOG

2.连接到数据库

CONN[ECT] [logon] [AS {SYSOPER | SYSDBA}]

其中logon为

{username[/passwd] | /}[@connect_identifier] [edition={edition_name | DATABASE_DEFAULT}]

说明:

/:用于连接请求的外部认证,这种验证类型不需要数据库密码。最常见的外部认证形式为操作系统认证。数据库用户由已登录主机操作系统的主机帐号验证并授权

AS {SYSOPER | SYSDBA}:用户以SYSOPER、SYSDBA系统权限连接.仅某些预定义的管理员用户或添加到密码文件的用户可以如此方式连接

username:合法数据库用户名。

passwd:合法数据库用户密码,如果不指定,且不是以
AS
SYSDAB方式登录时,会弹出密码输入提示

connect_identifier:Oracle网络连接标示符,用于远程连接。如果忽略,sqlplus连接到本地实例。常用连接标示符为网络服务名(net
service name).网络服务名为Oracle网络连接描述符的别名(网络地址和数据库服务名)。通常通过解析本地主机上的tnsnames.ora文件得到网络服务名。

connect_identifier的简易语法:

"host:[port][/service_name][:server][/instance_name]"

注:指定/service_name选项,可不在(本地)电脑客户端上配置Oracle网络服务

host:远程数据库主机IP或主机名

port:Oracle网络监听器监听的端口

service_name:要连接的数据库服务名。如果远程数据库网络服务监听器配置了缺省的服务名,可以忽略,否则必须提供。通常每个数据库提供了一个和全局数据库名相同的服务名。全局数据库名由DB_NAME和DB_DOMAIN初始参数组成:DB_NAME.DB_DOMAIN,如果DB_NAME为orcl,DB_DOMAIN为us.example.com,那么标准服务名为orcl.us.example.com

server:服务处理器类型,可接受值含dedicated(专用服务器)、shared(共享服务器)、pooled(共享池)

instance_name:指定要连接的实例。

edition={edition_name |
DATABASE_DEFAULT}:指定启动数据库会话时版本。如果指定版本,则该版本必须存在且拥有对它的USE权限,不指定则使用默认版本。

注:这个比较少用

B
方式2

将方式1中的两步合并为一步

sqlplus [logon] [AS
{SYSOPER | SYSDBA}]

例1:以SYSTEM用户身份连接

SQL> conn
system

Enter password:

ERROR:

ORA-01034: ORACLE not
available

ORA-27101: shared memory
realm does not exist

Linux Error: 2: No such
file or directory

Process ID: 0

Session ID: 0 Serial
number: 0

输出说明:因为此时数据库没开启,所以报错

例2:以具有SYSDBA权限的SYS用户身份连接到一个本地数据库

SQL>CONNECTSYS AS
SYSDBA

Enter password:

Connected to an idle
instance.

说明:以SYS用户身份连接,必须指定AS
SYSDBA

例3:使用操作系统认证,以SYSDBA特权进行本地连接

SQL>CONNECT / AS
SYSDBA

Connected to an idle
instance

----------------远程连接(未在本地客户端上配置SERVICE_NAME)------------------

例4:以testacc用户身份,并指定用户密码(abc123),监听端口号,远程连接到运行于主机172.25.75.14上,数据库服务名为oracl11g的数据库

SQL> CONNECT
testacc/abc123@"172.25.75.14:1521/orcl11g"

Connected.

注意:

1.如果未在本地客户端上配置tnsname.ora文件,则必须指定服务名,否则会报错误,如下:

ORA-12504:
TNS:listener was not given the SERVICE_NAME in
CONNECT_DATA

2.如果未在本地客户端上配置tnsname.ora文件,如果涉及远程连接,则必须指定服务名

例5:不指定用户密码外

SQL> CONNECT
testacc@"172.25.75.14:1521/orcl11g"

Enter password:

Connected.

例6:指定实例名

SQL> CONNECT
testacc/abc123@"172.25.75.14:1521/orcl11g/orcl11g"

Connected.

注:这里有两个oracl11g,从左到右,第一个是服务名SERVICE_NAME,第二个是实例名,以下例子也一样

例7:指定服务器类型

SQL> CONNECT
testacc/abc123@"172.25.75.14:1521/orcl11g:server/orcl11g"

Connected.

例8:不指定端口号

SQL> CONNECT
testacc/abc123@"172.25.75.14/orcl11g"

Connected.

例9:不指定实例名,指定服务器类型

SQL> CONNECT
testacc/abc123@"172.25.75.14:1521/orcl11g:server"

Connected.

例10:以sqlplus一步到位方式连接

d:\>sqlplus
testacc/abc123@"172.25.75.14:1521/orcl11g:server/orcl11g"

SQL*Plus: Release
11.2.0.1.0 Production on Tue Nov 18 10:18:51 2014

Copyright (c) 1982, 2010,
Oracle.  All
rights reserved.

Connected to:

Oracle Database 11g
Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning,
OLAP, Data Mining and Real Application Testing options

-----------------------end----------------------

参考链接:

http://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#ADMIN004