SQLPLUS登陆命令
一.SQLPLUS登陸命令:
使用sqlplus:
10G之前的版本登陸時(shí)需要加引號(hào)(單、雙引號(hào)皆可)如:sqlplus " / as sysdba"
sqlplus -prelim / as sysdba???? 從Oracle10g開(kāi)始,sqlplus提供了一個(gè)參數(shù)選項(xiàng)-prelim,用這個(gè)參數(shù),在系統(tǒng)已經(jīng)hang的時(shí)候可以連接到SGA而不是數(shù)據(jù)庫(kù),也就是說(shuō)沒(méi)有session被創(chuàng)建。
sqlplus /nolog
conn / as sysdba
connect / assysdba
conn sys/oracle assysdba
SQL>conn bys/bys
已連接。
SQL>show user
USER 為 “BYS”
使用服務(wù)名登陸,as sysdba即使用SYSDBA用戶權(quán)限登陸
SQL>conn sys/oraclesys@orcl as sysdba
已連接。
查看用戶權(quán)限:
SQL>show user
USER 為?“SYS”
SQL>conn sys/oraclesys@orcl?as sysoper
已連接。
SQL>show user
USER 為?“PUBLIC”
登陸時(shí)可以使用IP+端口+服務(wù)名或主機(jī)名+端口+服務(wù)名
SQL>conn bys/bys@192.168.0.181:1521/orcl
已連接。
SQL>show user
USER 為 “BYS”
SQL>conn scott/tiger@xporacle:1521/orcl
已連接。
SQL>show user
USER 為 “SCOTT”
總結(jié)如下:
直接在SQLPLUS啟動(dòng)時(shí)輸入用戶名密碼的多種格式。
sqlplusscott/tiger
sqlplus -prelim /nolog?? --數(shù)據(jù)庫(kù)hang住時(shí),可以這樣登陸。
sqlplusscott/tiger@orcl
sqlplus?scott/tiger@192.168.2.18:1521/orcl
sqlplusscott/tiger@xporacle:1521/orcl
如果監(jiān)聽(tīng)運(yùn)行在默認(rèn)的1521端口,可以不寫端口:如下:
sqlplus?bys/bys@192.168.1.211/bys3
如果不想在命令中輸入密碼,可以使用:或者為用監(jiān)聽(tīng)名時(shí):
[oracle@bys3 dbs]$?sqlplus bys
SQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 16 20:26:51 2014
Copyright ? 1982, 2013, Oracle.? All rights reserved.
Enter password:
?
?
sqlplussys/oraclesys as sysdba
斷開(kāi)連接不退出SQLPLUS——disconnect,斷開(kāi)并退出SQLPLUS exit? —要注意:disconnect或exit,會(huì)隱式提交未提交的事務(wù)。
注:sqlplus scott/tiger@orcl登陸時(shí):加@,是通過(guò)監(jiān)聽(tīng)器(IPC或網(wǎng)絡(luò)方式)連接到數(shù)據(jù)庫(kù)。?
??????? sqlplus scott/tiger登陸時(shí):不使用@時(shí),SQLPLUS程序以IPC–進(jìn)程間通信方式直接與本機(jī)的ORACLE實(shí)例進(jìn)行通信
二.登陸后查詢用戶角色權(quán)限:–以什么角色登陸
查看當(dāng)前用戶
Show user
查詢當(dāng)前用戶有哪些角色
SQL> select * from user_role_privs;
查詢角色都有哪些權(quán)限
只能當(dāng)前用戶查詢自己的權(quán)限,如BYS是DBA用戶,也不能查出SCOTT用戶的RESOURCE角色有哪些權(quán)限,SCOTT自己則可以。
SYS用戶是可以查詢的。
SCOTT用戶查詢
SQL>? select * from role_sys_privs whererole=‘RESOURCE’;
三.SQLPLUS文件操作命令:
SQLPLUS基本操作
1.spool將屏幕顯示及查詢結(jié)果輸入到指定文本文件中
spool d:\1.txt
select * from emp;
spool off
2.執(zhí)行和編輯指定位置的SQL腳本
start d:\test.sql
@ d:\test.sql
執(zhí)行當(dāng)前目錄下的SQL腳本,即:登陸SQLPLUS時(shí)的目錄,示例如下:
[oracle@bys001 oradiag_oracle]$ ls
a.sql? diag
[oracle@bys001 oradiag_oracle]$ cat a.sql?
select sysdate from dual;
[oracle@bys001 oradiag_oracle]$ sqlplus bys/bys
BYS@bys1>@a.sql
SYSDATE
05-SEP-13
編輯指定的SQL腳本
edit d:\test.sql
3.&替代變量
如:select * from emp where empno=&;
會(huì)提示輸入EMPNO的值。交互式
4.將當(dāng)前SQL緩沖構(gòu)內(nèi)SQL語(yǔ)句保存到指定文件
save d:\test2.sql
將文件中SQL語(yǔ)句調(diào)入SQLPLUS緩沖區(qū)
get d:\test2.sql
顯示緩沖區(qū)內(nèi)語(yǔ)句
list
注意:單引號(hào)和雙引號(hào)內(nèi)大小寫敏感。
關(guān)鍵字不能縮寫,也不能跨行書寫,單引號(hào)內(nèi)也不跨行寫。
每個(gè)子句是一行。
字符串用單引,列別名用雙引。
標(biāo)點(diǎn)符號(hào)要用英文標(biāo)點(diǎn),中文出錯(cuò)。
?
三.SQLPLUS中顯示設(shè)置-列長(zhǎng)、分頁(yè)
1.更改分頁(yè)、行寬設(shè)置
show linesize
show pagesize
set linesize 100?????? ——默認(rèn)80字符–這里應(yīng)該根據(jù)實(shí)際需要設(shè)置。如設(shè)置過(guò)大,在desc objectname時(shí),name列和type 列占位非常長(zhǎng),使用colnamefora7;語(yǔ)句無(wú)效,只能設(shè)置linesize變小。
set pagesize 20?? ?? ——默認(rèn)14行
SQL>?set?numwidth???? 38好像設(shè)置數(shù)字型的默認(rèn)顯示寬度?set?num?4?,所以顯示會(huì)有變?##??
set serveroutput on
即打開(kāi)oracle自帶的輸出方法dbms_output。
在執(zhí)行set serveroutput on以后,使用dbms_output方法可以輸出信息,例如:dbms_output.put_line(‘This is’);?
2.設(shè)置指定顯示的列名的寬度–列是字符及數(shù)字
?col username format a20 ??? 設(shè)置 username列的列寬是20個(gè)字符-----字符列寬?
?col username for a4?
set feedback 1? 設(shè)置執(zhí)行完語(yǔ)句的回饋信息如:6 rows selected. 默認(rèn)是6 大于6行才會(huì)顯示。
BYS@bys1>col aa format 99,999,999??????設(shè)置abc列的列寬是8位,并用逗號(hào)隔開(kāi)—數(shù)字列寬
BYS@bys1>select 100100100 as aa from dual;
AA
1,000,000
BYS@bys1>col aa format 99999999
BYS@bys1>select 100100100 as aa from dual;
AA
1000000
清除指定顯示的列名的寬度設(shè)置
SQL>?col members clear??? 清除members列的列寬設(shè)置,恢復(fù)為默認(rèn)值。
將所有列的顯示屬性設(shè)為缺省值?
SQL>CLEAR COLUMNS
顯示列值時(shí),如果列值為NULL值,用text值代替NULL值?
SQL>COL COMM NULL text?
顯示列的當(dāng)前的顯示屬性值?
SQL> COLUMN column_name?
清屏命令:
clear screen?? --LINUX下
clear
或者使用系統(tǒng)的清屏命令如WINDOWS?host cls。LINUX???!clear
四、將一個(gè)數(shù)據(jù)庫(kù)中的一些數(shù)據(jù)拷貝到另外一個(gè)數(shù)據(jù)庫(kù)(如將一個(gè)表的數(shù)據(jù)拷貝到另一個(gè)數(shù)據(jù)庫(kù))
COPY {FROM database | TO database | FROM database TO database}?
{APPEND|CREATE|INSERT|REPLACE} destination_table?
[(column, column, column, …)] USING query?
??
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST ?
create emp_temp?
USING SELECT * FROM EMP?
?SQLPlus中的快速?gòu)?fù)制和粘貼技巧:
1] 鼠標(biāo)移至想要復(fù)制內(nèi)容的開(kāi)始?
2] 用右手食指按下鼠標(biāo)左鍵?
3] 向想要復(fù)制內(nèi)容的另一角拖動(dòng)鼠標(biāo),與Word中選取內(nèi)容的方法一樣?
4] 內(nèi)容選取完畢后(所選內(nèi)容全部反顯),鼠標(biāo)左鍵按住不動(dòng),用右手中指按鼠標(biāo)右鍵?
5] 這時(shí),所選內(nèi)容會(huì)自動(dòng)復(fù)制到SQL*Plus環(huán)境的最后一行
五、使用USERENV函數(shù)查詢會(huì)話信息
USERENV(OPTION)
返回當(dāng)前的會(huì)話信息.
OPTION='ISDBA’若當(dāng)前是DBA角色,則為TRUE,否則FALSE.
OPTION=‘LANGUAGE’返回?cái)?shù)據(jù)庫(kù)的字符集.
OPTION=‘SESSIONID’為當(dāng)前會(huì)話標(biāo)識(shí)符.
OPTION=‘ENTRYID’返回可審計(jì)的會(huì)話標(biāo)識(shí)符.
OPTION=‘LANG’返回會(huì)話語(yǔ)言名稱的ISO簡(jiǎn)記.
OPTION=‘INSTANCE’返回當(dāng)前的實(shí)例.
OPTION=‘terminal’返回當(dāng)前計(jì)算機(jī)名
使用示例:
SELECT USERENV(‘LANGUAGE’) FROM DUAL;
六、SQLPLUS中插入特殊字符
方法1:設(shè)置define
SQL>?set define off
SQL> select * from dba_tables where table_name =’&123’;
no rows selected
SQL>?set define on
SQL> select * from dba_tables where table_name =’&123’;
Enter value for 123:
方法2:
select chr(ascii(’&’)) from dual;
總結(jié)
以上是生活随笔為你收集整理的SQLPLUS登陆命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小程序权限设置:小程序下载图片保存到相册
- 下一篇: 教你用SQL进行数据分析