標籤:oracle pl/sql
一、準備工作
本機採用的是CentOS6.5的作業系統,安裝的是Oracle 11g的資料庫,安裝過程並不複雜,可上網搜尋。成功安裝資料庫之後,使用oracle使用者登陸系統,然後在命令列輸入以下命令:
[[email protected]~]$ cd $ORACLE_HOME/bin
# 進入/home/oracle/bin目錄
[[email protected]]$ lsnrctl start
-- 開啟監聽(如果監聽已經開啟了,則忽略此步驟)LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-AUG-201415:28:48 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /oracle/11g/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionSystem parameter file is /oracle/11g/network/admin/listener.oraLog messages written to/oracle/diag/tnslsnr/localhost/listener/alert/log.xmlListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNRfor Linux: Version 11.2.0.1.0 - ProductionStart Date 06-AUG-2014 15:28:48Uptime 0 days 0hr. 0 min. 0 secTrace Level offSecurity ON: LocalOS AuthenticationSNMP OFFListener Parameter File /oracle/11g/network/admin/listener.oraListener Log File /oracle/diag/tnslsnr/localhost/listener/alert/log.xmlListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))The listener supports no servicesThe command completed successfully
[[email protected]~]$ sqlplus /nolog
-- 開啟sqlplus工具,以nolog的形式登陸SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 6 15:21:00 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL>conn / as sysdba
-- 以sysdba串連Connected to an idle instance.
SQL>startup
-- 啟動資料庫ORACLE instance started. Total System Global Area 422670336bytesFixed Size 1336960bytesVariable Size 310380928bytesDatabase Buffers 104857600bytesRedo Buffers 6094848bytesDatabase mounted.Database opened.
(如果要關閉資料庫,可以使用以下命令)
SQL>shutdown immediate
Database closed.Database dismounted.ORACLE instance shut down.
下面建一個表來檢測當前資料庫是否工作正常:
SQL>create table testbl (id integer, name char(10));
Table created. -- 建立一個名為testbl的表
SQL>insert into testbl values(0,‘Mickey‘);
1 row created.-- 插入一行新資料
SQL>commit;
Commit complete.
SQL>select * from testbl;
-- 能成功查詢到表testbl中的資料,說明資料庫工作正常 ID NAME---------- ---------- 0 Mickey
二、實驗環境介紹
後文中使用是Oracle 11g預設安裝的資料庫,主要以HR這schema為例。以下是HR這個schema的關係表:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/45/42/wKioL1PlE9GjirsoAAH0oDgpMoc059.jpg" title="1.png" alt="wKioL1PlE9GjirsoAAH0oDgpMoc059.jpg" />
由於剛剛建立的資料庫,很多使用者是鎖住的狀態,如果要正常使用,需要先為HR使用者解鎖,下面來示範一下如何為HR使用者解鎖:
SQL> desc dba_users
Name Null? Type ------------------------------------------------- ----------------------- USERNAME NOT NULLVARCHAR2(30) USER_ID NOT NULLNUMBER PASSWORD VARCHAR2(30) ACCOUNT_STATUS NOT NULLVARCHAR2(32) LOCK_DATE DATE EXPIRY_DATE DATE DEFAULT_TABLESPACE NOT NULL VARCHAR2(30) TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30) CREATED NOT NULL DATE PROFILE NOT NULLVARCHAR2(30) INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30) EXTERNAL_NAME VARCHAR2(4000) PASSWORD_VERSIONS VARCHAR2(8) EDITIONS_ENABLED VARCHAR2(1) AUTHENTICATION_TYPE VARCHAR2(8)
SQL> select username, account_status
2 from dba_users
3 order by username;
USERNAME ACCOUNT_STATUS--------------------------------------------------------------ANONYMOUS EXPIRED & LOCKEDAPEX_030200 EXPIRED & LOCKEDEXFSYS EXPIRED & LOCKEDFLOWS_FILES EXPIRED & LOCKEDHR EXPIRED & LOCKED-- 這裡會看到HR 使用者被鎖住了,且密碼已到期,因此需要用管理員身份先為該使用者解鎖,並設定密碼;
SQL> alter user hr identified by *******;
User altered.-- 使用alter命令為HR 使用者佈建密碼
SQL> select username, account_status from dba_users;
USERNAME ACCOUNT_STATUS--------------------------------------------------------------MGMT_VIEW OPENSYS OPENSYSTEM OPENDBSNMP OPENSYSMAN OPENHR LOCKED-- HR 使用者有了密碼,但還是被鎖住了
SQL> alter user hr account unlock;
User altered.
SQL> select username, account_status from dba_users;
USERNAME ACCOUNT_STATUS--------------------------------------------------------------MGMT_VIEW OPENSYS OPENSYSTEM OPENDBSNMP OPENSYSMAN OPENHR OPEN-- HR 使用者已經解鎖了,可以以HR使用者正常登陸。
SQL> conn hr/******
Connected.
HR使用者成功登陸,至此,可以開始使用ORACLE資料庫進行PL/SQL的學習了
本文出自 “重劍無鋒 大巧不工” 部落格,請務必保留此出處http://wuyelan.blog.51cto.com/6118147/1537684