SQLPLUS登陆命令
一.SQLPLUS登陸命令:
使用sqlplus:
10G之前的版本登陸時需要加引號(單、雙引號皆可)如:sqlplus " / as sysdba"
sqlplus -prelim / as sysdba???? 從Oracle10g開始,sqlplus提供了一個參數選項-prelim,用這個參數,在系統已經hang的時候可以連接到SGA而不是數據庫,也就是說沒有session被創建。
sqlplus /nolog
conn / as sysdba
connect / assysdba
conn sys/oracle assysdba
SQL>conn bys/bys
已連接。
SQL>show user
USER 為 “BYS”
使用服務名登陸,as sysdba即使用SYSDBA用戶權限登陸
SQL>conn sys/oraclesys@orcl as sysdba
已連接。
查看用戶權限:
SQL>show user
USER 為?“SYS”
SQL>conn sys/oraclesys@orcl?as sysoper
已連接。
SQL>show user
USER 為?“PUBLIC”
登陸時可以使用IP+端口+服務名或主機名+端口+服務名
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”
總結如下:
直接在SQLPLUS啟動時輸入用戶名密碼的多種格式。
sqlplusscott/tiger
sqlplus -prelim /nolog?? --數據庫hang住時,可以這樣登陸。
sqlplusscott/tiger@orcl
sqlplus?scott/tiger@192.168.2.18:1521/orcl
sqlplusscott/tiger@xporacle:1521/orcl
如果監聽運行在默認的1521端口,可以不寫端口:如下:
sqlplus?bys/bys@192.168.1.211/bys3
如果不想在命令中輸入密碼,可以使用:或者為用監聽名時:
[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
斷開連接不退出SQLPLUS——disconnect,斷開并退出SQLPLUS exit? —要注意:disconnect或exit,會隱式提交未提交的事務。
注:sqlplus scott/tiger@orcl登陸時:加@,是通過監聽器(IPC或網絡方式)連接到數據庫。?
??????? sqlplus scott/tiger登陸時:不使用@時,SQLPLUS程序以IPC–進程間通信方式直接與本機的ORACLE實例進行通信
二.登陸后查詢用戶角色權限:–以什么角色登陸
查看當前用戶
Show user
查詢當前用戶有哪些角色
SQL> select * from user_role_privs;
查詢角色都有哪些權限
只能當前用戶查詢自己的權限,如BYS是DBA用戶,也不能查出SCOTT用戶的RESOURCE角色有哪些權限,SCOTT自己則可以。
SYS用戶是可以查詢的。
SCOTT用戶查詢
SQL>? select * from role_sys_privs whererole=‘RESOURCE’;
三.SQLPLUS文件操作命令:
SQLPLUS基本操作
1.spool將屏幕顯示及查詢結果輸入到指定文本文件中
spool d:\1.txt
select * from emp;
spool off
2.執行和編輯指定位置的SQL腳本
start d:\test.sql
@ d:\test.sql
執行當前目錄下的SQL腳本,即:登陸SQLPLUS時的目錄,示例如下:
[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=&;
會提示輸入EMPNO的值。交互式
4.將當前SQL緩沖構內SQL語句保存到指定文件
save d:\test2.sql
將文件中SQL語句調入SQLPLUS緩沖區
get d:\test2.sql
顯示緩沖區內語句
list
注意:單引號和雙引號內大小寫敏感。
關鍵字不能縮寫,也不能跨行書寫,單引號內也不跨行寫。
每個子句是一行。
字符串用單引,列別名用雙引。
標點符號要用英文標點,中文出錯。
?
三.SQLPLUS中顯示設置-列長、分頁
1.更改分頁、行寬設置
show linesize
show pagesize
set linesize 100?????? ——默認80字符–這里應該根據實際需要設置。如設置過大,在desc objectname時,name列和type 列占位非常長,使用colnamefora7;語句無效,只能設置linesize變小。
set pagesize 20?? ?? ——默認14行
SQL>?set?numwidth???? 38好像設置數字型的默認顯示寬度?set?num?4?,所以顯示會有變?##??
set serveroutput on
即打開oracle自帶的輸出方法dbms_output。
在執行set serveroutput on以后,使用dbms_output方法可以輸出信息,例如:dbms_output.put_line(‘This is’);?
2.設置指定顯示的列名的寬度–列是字符及數字
?col username format a20 ??? 設置 username列的列寬是20個字符-----字符列寬?
?col username for a4?
set feedback 1? 設置執行完語句的回饋信息如:6 rows selected. 默認是6 大于6行才會顯示。
BYS@bys1>col aa format 99,999,999??????設置abc列的列寬是8位,并用逗號隔開—數字列寬
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
清除指定顯示的列名的寬度設置
SQL>?col members clear??? 清除members列的列寬設置,恢復為默認值。
將所有列的顯示屬性設為缺省值?
SQL>CLEAR COLUMNS
顯示列值時,如果列值為NULL值,用text值代替NULL值?
SQL>COL COMM NULL text?
顯示列的當前的顯示屬性值?
SQL> COLUMN column_name?
清屏命令:
clear screen?? --LINUX下
clear
或者使用系統的清屏命令如WINDOWS?host cls。LINUX???!clear
四、將一個數據庫中的一些數據拷貝到另外一個數據庫(如將一個表的數據拷貝到另一個數據庫)
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中的快速復制和粘貼技巧:
1] 鼠標移至想要復制內容的開始?
2] 用右手食指按下鼠標左鍵?
3] 向想要復制內容的另一角拖動鼠標,與Word中選取內容的方法一樣?
4] 內容選取完畢后(所選內容全部反顯),鼠標左鍵按住不動,用右手中指按鼠標右鍵?
5] 這時,所選內容會自動復制到SQL*Plus環境的最后一行
五、使用USERENV函數查詢會話信息
USERENV(OPTION)
返回當前的會話信息.
OPTION='ISDBA’若當前是DBA角色,則為TRUE,否則FALSE.
OPTION=‘LANGUAGE’返回數據庫的字符集.
OPTION=‘SESSIONID’為當前會話標識符.
OPTION=‘ENTRYID’返回可審計的會話標識符.
OPTION=‘LANG’返回會話語言名稱的ISO簡記.
OPTION=‘INSTANCE’返回當前的實例.
OPTION=‘terminal’返回當前計算機名
使用示例:
SELECT USERENV(‘LANGUAGE’) FROM DUAL;
六、SQLPLUS中插入特殊字符
方法1:設置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;
總結
以上是生活随笔為你收集整理的SQLPLUS登陆命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序权限设置:小程序下载图片保存到相册
- 下一篇: 教你用SQL进行数据分析