oracleplsql攻略
首先確認你資料庫有幾個?如果有幾個則需要設置,打開plsql
,tools--》preferences,選中左邊第一項「connection」,右邊的配置欄中,下面oracle
home
設置為你想連接的資料庫。
如果你只有一個庫,那麼嘗試做以下操作。打開服務查看相關的監聽服務有沒有開啟。如果開啟還是出現這個問題,那麼確認一下你的電腦名或者配置的虛擬網卡ip是否做過改動,如果改動,資料庫需重新建立。
如果沒有上述問題,請在net
manager
中看一下oracle的服務名,埠號,服務地址是否配置正確。監聽服務中主機名、埠號是否配置正確。都正確還是出錯,那麼建議關閉監聽服務,刪除原監聽重新建立監聽。
『貳』 關於oracle PLSQL
PL/SQL是ORACLE對標准資料庫語言的擴展,ORACLE公司已經將PL/SQL整合到ORACLE 伺服器和其他工具中了,近幾年中更多的開發人員和DBA開始使用PL/SQL,本文將講述PL/SQL基礎語法,結構和組件、以及如何設計並執行一個PL/SQL程序。
PL/SQL的優點
從版本6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的優點以及其獨有的數據管理的便利性,那麼你很難想像ORACLE缺了PL/SQL的情形。PL/SQL 不是一個獨立的產品,他是一個整合到ORACLE伺服器和ORACLE工具中的技術,可以把PL/SQL看作ORACLE伺服器內的一個引擎,sql語句執行者處理單個的sql語句,PL/SQL引擎處理PL/SQL程序塊。當PL/SQL程序塊在PL/SQL引擎處理時,ORACLE伺服器中的SQL語句執行器處理pl/sql程序塊中的SQL語句。
PL/SQL的優點如下:
. PL/SQL是一種高性能的基於事務處理的語言,能運行在任何ORACLE環境中,支持所有數據處理命令。通過使用PL/SQL程序單元處理SQL的數據定義和數據控制元素。
. PL/SQL支持所有SQL數據類型和所有SQL函數,同時支持所有ORACLE對象類型
. PL/SQL塊可以被命名和存儲在ORACLE伺服器中,同時也能被其他的PL/SQL程序或SQL命令調用,任何客戶/伺服器工具都能訪問PL/SQL程序,具有很好的可重用性。
. 可以使用ORACLE數據工具管理存儲在伺服器中的PL/SQL程序的安全性。可以授權或撤銷資料庫其他用戶訪問PL/SQL程序的能力。
. PL/SQL代碼可以使用任何ASCII文本編輯器編寫,所以對任何ORACLE能夠運行的操作系統都是非常便利的
. 對於SQL,ORACLE必須在同一時間處理每一條SQL語句,在網路環境下這就意味作每一個獨立的調用都必須被oracle伺服器處理,這就佔用大量的伺服器時間,同時導致網路擁擠。而PL/SQL是以整個語句塊發給伺服器,這就降低了網路擁擠。
PL/SQL塊結構
PL/SQL是一種塊結構的語言,組成PL/SQL程序的單元是邏輯塊,一個PL/SQL 程序包含了一個或多個邏輯塊,每個塊都可以劃分為三個部分。與其他語言相同,變數在使用之前必須聲明,PL/SQL提供了獨立的專門用於處理異常的部分,下面描述了PL/SQL塊的不同部分:
聲明部分(Declaration section)
聲明部分包含了變數和常量的數據類型和初始值。這個部分是由關鍵字DECLARE開始,如果不需要聲明變數或常量,那麼可以忽略這一部分;需要說明的是游標的聲明也在這一部分。
執行部分(Executable section)
執行部分是PL/SQL塊中的指令部分,由關鍵字BEGIN開始,所有的可執行語句都放在這一部分,其他的PL/SQL塊也可以放在這一部分。
異常處理部分(Exception section)
這一部分是可選的,在這一部分中處理異常或錯誤,對異常處理的詳細討論我們在後面進行。
PL/SQL塊語法
[DECLARE]
---declaration statements
BEGIN
---executable statements
[EXCEPTION]
---exception statements
END
PL/SQL塊中的每一條語句都必須以分號結束,SQL語句可以使多行的,但分號表示該語句的結束。一行中可以有多條SQL語句,他們之間以分號分隔。每一個PL/SQL塊由BEGIN或DECLARE開始,以END結束。注釋由--標示。
PL/SQL塊的命名和匿名
PL/SQL程序塊可以是一個命名的程序塊也可以是一個匿名程序塊。匿名程序塊可以用在伺服器端也可以用在客戶端。
命名程序塊可以出現在其他PL/SQL程序塊的聲明部分,這方面比較明顯的是子程序,子程序可以在執行部分引用,也可以在異常處理部分引用。
PL/SQL程序塊可背獨立編譯並存儲在資料庫中,任何與資料庫相連接的應用程序都可以訪問這些存儲的PL/SQL程序塊。ORACLE提供了四種類型的可存儲的程序:
. 函數
. 過程
. 包
. 觸發器
函數
函數是命名了的、存儲在資料庫中的PL/SQL程序塊。函數接受零個或多個輸入參數,有一個返回值,返回值的數據類型在創建函數時定義。定義函數的語法如下:
FUNCTION name [{parameter[,parameter,...])] RETURN datatypes IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers]
END [name]
過程
存儲過程是一個PL/SQL程序塊,接受零個或多個參數作為輸入(INPUT)或輸出(OUTPUT)、或既作輸入又作輸出(INOUT),與函數不同,存儲過程沒有返回值,存儲過程不能由SQL語句直接使用,只能通過EXECUT命令或PL/SQL程序塊內部調用,定義存儲過程的語法如下:
PROCEDURE name [(parameter[,parameter,...])] IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers ]
END [name]
包(package)
包其實就是被組合在一起的相關對象的集合,當包中任何函數或存儲過程被調用,包就被載入入內存中,包中的任何函數或存儲過程的子程序訪問速度將大大加快。
包由兩個部分組成:規范和包主體(body),規范描述變數、常量、游標、和子程序,包體完全定義子程序和游標。
觸發器(trigger)
觸發器與一個表或資料庫事件聯系在一起的,當一個觸發器事件發生時,定義在表上的觸發器被觸發。
變數和常量
變數存放在內存中以獲得值,能被PL/SQL塊引用。你可以把變數想像成一個可儲藏東西的容器,容器內的東西是可以改變的。
聲明變數
變數一般都在PL/SQL塊的聲明部分聲明,PL/SQL是一種強壯的類型語言,這就是說在引用變數前必須首先聲明,要在執行或異常處理部分使用變數,那麼變數必須首先在聲明部分進行聲明。
聲明變數的語法如下:
Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
注意:可以在聲明變數的同時給變數強制性的加上NOT NULL約束條件,此時變數在初始化時必須賦值。
給變數賦值
給變數賦值有兩種方式:
. 直接給變數賦值
X:=200;
Y=Y+(X*20);
. 通過SQL SELECT INTO 或FETCH INTO給變數賦值
SELECT SUM(SALARY),SUM(SALARY*0.1)
INTO TOTAL_SALARY,TATAL_COMMISSION
FROM EMPLOYEE
WHERE DEPT=10;
常量
常量與變數相似,但常量的值在程序內部不能改變,常量的值在定義時賦予,,他的聲明方式與變數相似,但必須包括關鍵字CONSTANT。常量和變數都可被定義為SQL和用戶定義的數據類型。
ZERO_VALUE CONSTANT NUMBER:=0;
這個語句定了一個名叫ZERO_VALUE、數據類型是NUMBER、值為0的常量。
標量(scalar)數據類型
標量(scalar)數據類型沒有內部組件,他們大致可分為以下四類:
. number
. character
. date/time
. boolean
表1顯示了數字數據類型;表2顯示了字元數據類型;表3顯示了日期和布爾數據類型。
表1 Scalar Types:Numeric
Datatype
Range
Subtypes
description
BINARY_INTEGER
-214748-2147483647
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用於存儲單位元組整數。
要求存儲長度低於NUMBER值。
用於限制范圍的子類型(SUBTYPE):
NATURAL:用於非負數
POSITIVE:只用於正數
NATURALN:只用於非負數和非NULL值
POSITIVEN:只用於正數,不能用於NULL值
SIGNTYPE:只有值:-1、0或1.
NUMBER
1.0E-130-9.99E125
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
存儲數字值,包括整數和浮點數。可以選擇精度和刻度方式,語法:
number[([,])]。
預設的精度是38,scale是0.
PLS_INTEGER
-2147483647-2147483647
與BINARY_INTEGER基本相同,但採用機器運算時,PLS_INTEGER提供更好的性能 。
表2 字元數據類型
datatype
rang
subtype
description
CHAR
最大長度32767位元組
CHARACTER
存儲定長字元串,如果長度沒有確定,預設是1
LONG
最大長度2147483647位元組
存儲可變長度字元串
RAW
最大長度32767位元組
用於存儲二進制數據和位元組字元串,當在兩個資料庫之間進行傳遞時,RAW數據不在字元集之間進行轉換。
LONGRAW
最大長度2147483647
與LONG數據類型相似,同樣他也不能在字元集之間進行轉換。
ROWID
18個位元組
與資料庫ROWID偽列類型相同,能夠存儲一個行標示符,可以將行標示符看作資料庫中每一行的唯一鍵值。
VARCHAR2
最大長度32767位元組
STRINGVARCHAR
與VARCHAR數據類型相似,存儲可變長度的字元串。聲明方法與VARCHAR相同
表3 DATE和BOOLEAN
datatype
range
description
BOOLEAN
TRUE/FALSE
存儲邏輯值TRUE或FALSE,無參數
DATE
01/01/4712 BC
存儲固定長的日期和時間值,日期值中包含時間
『叄』 如何用PLSQL登錄Oracle資料庫
1,打開plsql developer客戶端,進入登錄界面
2,輸入用戶名、密碼和資料庫,進行資料庫伺服器
3,很多時候,不知道資料庫的地址,填寫錯誤後,登錄會提示錯誤
4,一般的資料庫伺服器填寫格式為伺服器的ip地址,再加上「/」,再加上資料庫名
5,如果要連接本地的oracle數據的話,可以直接填寫本地的資料庫名。比如上圖中的aaa就是本地資料庫名。
6,連接成功後,在首頁左中間的部分,就會看到資料庫中的tables選項,點擊後,會出現資料庫中已經存在的表
『肆』 oracle package body怎麼執行啊
包只是作為 程序的一個載體而已,你要運行,當然是去調用它!
包裡面可以包含函數、過程等,你可以開發程序時候調用包裡面的這些程序!沒有聽說過包怎麼運行的道理!
就像電視機(包)可以用來看電視,但是你不去打開它(調用包),它就沒有作用!
樓下的明顯誤導別人啊,包何來參數之說?只有包裡面的程序才有參數,調用包裡面過程的方法如下:
begin
exec 包名.過程名();
end;
函數的調用就不用我寫了吧!
『伍』 plsql怎麼連接oracle
最簡單的方法:
1首先要獲得資料庫的連接串信息和數據用戶賬號密碼
2整理成如下格式:usename/password@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =10.31.226.156)(PORT = 1588))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = t0itrm)))
3.打開PL/SQL,將以上信息全部復制粘貼到用戶名裡面,點擊確定即可
方法2:配置TNS文件(將資料庫連接串信息配置到文件裡面)
1.TNS文件在以下路徑:C:Oracleproct11.2.0client_1
etworkadmin(或者直接復制別人的tnsnames.ora到改路徑下)
2.將連接串信息寫到tnsnames.ora文件
格式如下:
database_name=
(description =
(address = (protocol = tcp)(HOST=10.25.17.141)(PORT=1526))
(connect_data = (sid = EPCISDVP))
)
3.在PL/SQL登陸界面裡面選擇該資料庫,輸入賬號密碼登陸。
『陸』 如何用plsql連接oracle資料庫
plsql developer連接oracle資料庫的方法:
1、當打開PLSQL工具發現有三個文本框,但是會發現如下第二張圖與第一張圖多了一個文本框,顯示的是連接為連接資料庫需要幾個參數,大家都應該知道,連接資料庫需要ip地址、埠號、用戶名、密碼,、據庫名稱,最後一個就是資料庫角色,也就是"連接為"這個選項,沒有這個選項無法連接資料庫。沒有安裝Oracle的話,這里就會少一個選項"連接為",因為PLSQL工具會自動從系統注冊表找有沒有Oracle的配置信息,沒有則顯示如第一張圖,有則顯示第二張圖(也可能個別機器即使安裝了Oracle客戶端還是沒顯示,這樣需要手動去添加Oracle的參數配置文件)。
『柒』 怎麼用plsql連接oracle資料庫
plsql連接oracle數據可以按如下步驟操作:
1、打開PLSQL Developer客戶端,進入登錄界面,
2、輸入用戶名、密碼和資料庫,進行資料庫伺服器,
3、很多時候,不知道資料庫的地址,填寫錯誤後,登錄會提示錯誤,
4、一般的資料庫伺服器填寫格式為伺服器的IP地址,再加上「/」,再加上資料庫名,
5、如果要連接本地的Oracle數據的話,可以直接填寫本地的資料庫名,其中aaa就是本地在Oracle中的資料庫,
6、連接成功後,在首頁左中間的部分,就會看到數據
『捌』 plsql配置怎麼連oracle
首先要在安裝PLSQL的機器上安裝oracle客戶端,需要注意的是客戶端需要是32位的,PLSQL不支持64位oracle客戶端,然後創建tnsname,然後在oracle伺服器上創建監聽。然後就可以連接了。
如果是windows的話,在服務裡面就可以查服務要啟動,監聽也要啟動!可以用lsnrctl命令查看監聽!
首先你需要在我的電腦的屬性里,找到環境變數,配置系統下面的path,看看裡面指向的是哪裡(我的電腦里就有oracle的多個版本)
而且要在你的oracle的X:\oracle\proct\10.2.0\db_1\network\ADMIN\tnsnames.ora下配置監聽名及相關ip地址或計算機名,X一般是你本地盤符,例如像下面的格式。
orclTest =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcltst)
)
)
配置好後,可以使用tnsping 命令來測試監聽是否配置成功!如tnsping orclTest
以上都通過了,會提示OK,那連接是沒有問題的!
如果Oracle服務正常啟動了,就可以連接了。
如果不能連接,就要檢查伺服器端的兩個地方,Oracle是不是已經配置了網路監聽服務,Oracle的服務是不是已經啟動了。
啟動PLSQL程序:
方法一:
PLSQL->TOOLS->PREFERENCES->CONNECTION中分別設置ORACLE HOME,OCI LIBRARY兩個參數的值(此處只能讓PLSQL連接上,TNSPING未必能找到相應的TNS)
如下:
ORACLE HOME:OraDb11g_home2
OCI LIBRARY:C:\proct\11.2.0\dbhome_2\bin\oci.dll
具體值可以參照本機ORACLE產品目錄的路徑
方法二:
在我的電腦設置環境變數,新建變數,並給出相應的值。
如下:
變數 值
TNS_ADMIN C:\proct\11.2.0\dbhome_2\NETWORK\ADMIN(此處為ORACLE產品目錄下面tnsnames.ora的路徑)
希望能幫到您!
『玖』 怎樣用PLsql連接oracle資料庫
使用InstantClient,PL/SQL Developer連接Oracle(可以在32位機器上使用、也可以在64位機器上使用):
•1. 下載32位Oracle InstantClient,並展開到某目錄,例如C:\instantclient-basic-nt-11.2.0.2.0;
•2. 將系統的tnsnames.ora拷貝到該目錄下;
•3. 在PLSQL Developer中設置Oracle_Home和OCI Library:
ToolsPreferencesOracleConnection:
Oracle_Home: C:\instantclient-basic-nt-11.2.0.2.0
OCI Library: C:\instantclient-basic-nt-11.2.0.2.0\oci.dll
•4. 在PLSQL Developer目錄下新建如下bat文件,替換其快捷方式,啟動PLSQL Developer:
@echo off
set path=C:\instantclient-basic-nt-11.2.0.2.0
set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0
set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
『拾』 PLSQL配置怎麼連ORACLE
PLSQL配置ORACLE連接的方法如下:
一、 打開plsql的安裝目錄。
這樣就可以配置新的連接了。