當前位置:首頁 » 編程語言 » plsql輸入顯示異常
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

plsql輸入顯示異常

發布時間: 2022-06-15 12:23:47

Ⅰ PLsql Developer 總提示錯誤

1.首先檢查監聽程序是否能正常啟動,開始,運行 cmd--->lsnrctl start,檢查監聽是否是在正常運行,如果正常運行,會提示:TNS-01106: 使用名稱LISTENER的監聽程序已經啟動。如果沒有運行,用上面的命令啟動監聽程序。
2.還在命令提示行里用 tnsping 服務名 ,來檢查tnsnames.ora服務配置是否正確。正確的提示例如:

已使用 TNSNAMES 適配器來解析別名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.0.6)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 服務名)))
OK (50 毫秒)
3.plsql developer 連接不上,可以在不登錄的情況下,打開『工具』-『首選項』,設置下 oracle主目錄名和OCI庫的路徑。

Ⅱ plsql 查詢出來的數據小數部分顯示異常

你到pl/sql developer的preferences裡面的sql windows設置里
把number fields to char打上勾試試

Ⅲ oracle PL/SQL 提示數字或值錯誤

幾個辦法
(1)plsql中的varchar2格式可以有32767個字元,難道還不夠用(一般建立表時定義不了這么大最多隻能到4000),一般來說應該夠用了。
(2)實在不夠用可以人為截斷(分次發送,或者分兩次寫入),或者用自定義type(比如「自定義表」)的辦法解決。

Ⅳ pl sql 登陸出現錯誤

是64位的操作系統嗎 ?用下面的方法,不過最好換成oracle10的客戶端。

64位環境下使用PL/SQL Developer連接Oracle:
•1. 下載32位Oracle InstantClient,並展開到某目錄,例如C:\instantclient-basic-nt-11.2.0.2.0;
•2. 將系統的tnsnames.ora拷貝到該目錄下;
•3. 在PLSQL Developer中設置Oracle_Home和OCI Library:
ToolsPreferencesOracleConnection:
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意外錯誤請發送文件

plsql意外錯誤請發送文件如下:
由於plsql程序塊一旦產生異常而沒有指出如何處理時,程序會自動終止。異常情況處理就是用來處理這些正常執行中未預料到的事件。
運行時錯誤,出現這種錯誤的時候需要手工處理,可以採用第三方軟體的單步調試方式處理。
編譯錯誤,在執行之前就已經報錯,需要檢查程序,修改程序,debug。

Ⅵ plsql中怎麼返回異常的內容信息,就像java中的ex.println()一樣

plsql有24個預定義的exception,你如果不確定你的程序可能出現什麼樣的錯誤的話,可以逐個添加檢查,當然,你也可以制定詳細的排錯規則。目前來說,plsql中的exception的功能還沒能夠做到與程序語言中的異常處理相媲美的程度。
再說了,sql中能夠出現的錯誤的情況也是有限的。如果細心的話,很多錯誤都是能夠預見的。

Ⅶ oracle plsql 異常信息怎樣查看

PLSQL_Oracle Exception異常分類、異常拋出、異常處理、異常傳播(概念)
一、摘要
在PLSQL程序開發過程中,很重要的部分就是對程序異常的監控和處理,包括如何觸發異常,何時進行處理,如何進行處理,是否將程式中的所有異常集中在一起,通過公共異常處理的procere或function,如果沒有完善的程式處理機制,很難說該程式是一隻健壯的程式,當程式遇到很多類型或者量很多資料時,系統若沒有異常處理必然會導致程式的出錯
當預判到了某些異常,需要對預判到的異常進行合適相應的處理,是否拋出異常還是忽略還是其他
當然程式沒有預判到或者是一些未知的異常遇到,所以異常處理模塊也要考慮這些未預見到的程式
PLSQL異常的資料網路流傳很多,都有些類似,歸納的很詳細了,資料被轉來轉去,也不太清楚原文的出處,向未知的大神致敬
本文整理下網路上的資料,並重新排版了下
異常的分類
系統自帶異常
用戶自定異常
異常的拋出
PLSQL引擎自動處理
Raise
Raise_Application_Error
異常的處理
用戶自定異常處理
系統自帶異常處理
未知異常處理
在聲明階段中異常
異常的傳播異常的SQLCode 和 SQL Errm
異常在聲明塊中傳播
異常在執行塊中傳播
Oracle ERP Fnd_file工具
fnd_file.output
fnd_file.log
附件
附件 - Oracle自帶異常列表
附件 - Oracle Standard Error 列表
二、概述
1. 異常的分類
1.1 系統自帶異常
1.1.1 概念 : 執行期間返回到PL/SQL塊的ORACLE錯誤或由PL/SQL代碼的某操作引起的錯誤,如除數為零或內存溢出的情況
每當PL/SQL違背了ORACLE原則或超越了系統依賴的原則就會隱式的產生內部異常。
因為每個ORACLE錯誤都有一個號碼並且在PL/SQL中異常通過名字處理,ORACLE提供了預定義的內部異常
1.1.2 例子: 未定義異常,系統遇到預定義異常時,自動拋出,如no_data_found
1.2 用戶定義異常
1.2.1 概念: 由開發者顯示定義,在PL/SQL塊中傳遞信息以控制對於應用的錯誤處理
如果要處理未命名的內部異常,必須使用OTHERS異常處理器或PRAGMA EXCEPTION_INIT 。
PRAGMA由編譯器控制,或者是對於編譯器的注釋。PRAGMA在編譯時處理,而不是在運行時處理。
EXCEPTION_INIT告訴編譯器將異常名 與ORACLE錯誤碼結合起來,這樣可以通過名字引用任意的內部異常,並且可以通過名字為異常編寫一適當的異常處理器。
1.1.2 例子: 自定義一個異常bxj_exception,並拋出
2. 異常的拋出
2.1 通過PLSQL引擎自動處理
2.1.1 概念: 當資料庫或PL/SQL在運行時發生錯誤時,一個異常被PL/SQL運行時引擎自動拋出
2.1.2 例子: 系統自導拋出異常,並處理
2.2 通過Raise
2.2.1 概念: 異常也可以通過RAISE語句拋出RAISE exception_name;
顯式拋出異常是程序員處理聲明的異常的習慣用法,但RAISE不限於聲明了的異常,它可以拋出任何任何異常。例如,你希望用TIMEOUT_ON_RESOURCE錯誤檢測新的運行時異常處理器
2.2.2 例子: 通過raise語句將異常拋出
2.3 通過Raise_Application_Error
2.3.1 概念: RAISE_APPLICATION_ERROR 內建函數用於拋出一個異常並給異常賦予一個錯誤號以及錯誤信息。
自定義異常的預設錯誤號是+1,預設信息是 User_Defined_Exception。
RAISE_APPLICATION_ERROR函數能夠在pl/sql程序塊的執行部分和異常部分調 用,顯式拋出帶特殊錯誤號的命名異常。
Raise_application_error(error_number,message[,true,false])
錯誤號的范圍是-20,000到-20,999。錯誤信息是文本字元串,最多為2048位元組。TRUE和FALSE表示是添加(TRUE)進錯誤堆(ERROR STACK)還是覆蓋(overwrite)錯誤堆(FALSE)
2.3.2 例子: 通過raise_application_error語句將異常拋出
3. 異常的處理
3.1 用戶自定異常處理 、 系統自帶異常處理、 未知異常處理
以下一個簡單的例子說明了程式三種異常的捕捉和處理
3.2 在聲明階段中異常
以下一個簡單的例子說明了在聲明階段的異常,一般來說package執行過程中很少遇到這種錯誤,因為在編譯過程中就會審計
除非所引用的table的結構發生變化,導致引用失敗
4. 異常的傳播
4.1 如果異常發生在執行塊
當一個異常錯誤在執行部分引發時,有下列情況:
如果當前塊對該異常錯誤設置了處理,則執行它並成功完成該塊的執行,然後控制轉給包含塊。
如果沒有對當前塊異常錯誤設置定義處理器,則通過在包含塊中引發它來傳播異常錯誤。然後對該包含塊執行步驟
4.2 如果異常發生在聲明塊
如果在聲明部分引起異常情況,即在聲明部分出現錯誤,那麼該錯誤就能影響到其它的塊
5. 異常的SQLCode 和 SQL Errm
5.1 概念
由於ORACLE 的錯信息最大長度是512位元組,為了得到完整的錯誤提示信息,我們可用 SQLERRM和 SUBSTR 函數一起得到錯誤提示信息,方便進行錯誤,特別是如果WHEN OTHERS異常處理器時更為方便。
SQLCODE 返回遇到的Oracle 錯誤號
SQLERRM 返回遇到的Oracle錯誤信息
5.2 例子
產生SQLCode和SQLErrm
6. Oracle fnd_file.output 和 fnd_file.log
6.1 fnd_file.output
用於Request輸出報表產生layout,一般不能在這里寫log語句
6.2 fnd_file.log
用於存放程式log記錄,用於寫log,程式異常處理記錄都可以通過這個api進行記錄
7. 附件
7.1 附件 - Oracle自帶異常列表
ACCESS_INTO_NULL 未定義對象
CASE_NOT_FOUND CASE 中若未包含相應的 WHEN ,並且沒有設置 ELSE 時
COLLECTION_IS_NULL 集合元素未初始化
CURSER_ALREADY_OPEN 游標已經打開
DUP_VAL_ON_INDEX 唯一索引對應的列上有重復的值
INVALID_CURSOR 在不合法的游標上進行操作
INVALID_NUMBER 內嵌的 SQL 語句不能將字元轉換為數字
NO_DATA_FOUND 使用 select into 未返回行,或應用索引表未初始化的元素時
TOO_MANY_ROWS 執行 select into 時,結果集超過一行
ZERO_DIVIDE 除數為 0
SUBSCRIPT_BEYOND_COUNT 元素下標超過嵌套表或 VARRAY 的最大值
SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 時,將下標指定為負數
VALUE_ERROR 賦值時,變數長度不足以容納實際數據
LOGIN_DENIED PL/SQL 應用程序連接到 oracle 資料庫時,提供了不正確的用戶名或密碼
NOT_LOGGED_ON PL/SQL 應用程序在沒有連接 oralce 資料庫的情況下訪問數據
PROGRAM_ERROR PL/SQL 內部問題,可能需要重裝數據字典& pl./SQL 系統包
ROWTYPE_MISMATCH 宿主游標變數與 PL/SQL 游標變數的返回類型不兼容
SELF_IS_NULL 使用對象類型時,在 null 對象上調用對象方法
STORAGE_ERROR 運行 PL/SQL 時,超出內存空間
SYS_INVALID_ID 無效的 ROWID 字元串
TIMEOUT_ON_RESOURCE Oracle 在等待資源時超時

Ⅷ plsql登錄無響應

1,先將服務裡面的oracleTNSlistener(監聽)和oracleDBConsole停止(若oracleDBConsole處於停止運行狀態,則只需重啟一次監聽即可),然後開啟oracleDBConsole,等oracleDBConsole顯示正在運行再開啟監聽服務。
2,如果再次打開登陸出現TNS報錯,則點取消進入未登錄模式,打開oracle自帶的sql plus命令窗口,登入scott賬號,然後退出(比如輸入exit命令),再在「會話」欄里選擇登入賬號進行登入。若有更簡單的方法還請不吝分享!

=======================2015/11/01========================

Ⅸ 第一個PLSQL代碼就出現錯誤, 求助

在pl/sql的定義部分,如果你想給變數賦值,則應該這樣寫:

declare
v_name varchar2(20) := 'aaaaa';
begin
dbms_output.put_line(v_name);
end;

對於本例,另外一種解決辦法是,將變數賦值語句放到執行部分,即:

declare
v_name varchar2(20);
begin
v_name := 'aaaaa';
dbms_output.put_line(v_name);
end;

Ⅹ PLSQL登陸時顯示如下錯誤,如何解決

看網上的說法是到工具-首選項-oracle連接去配置oracle主目錄名和oci庫的位置。
(Tools-Preferences-Oracle-Connection去配置Oracle Home和OCI library)
配置過後登陸時仍然報錯:
Could not load "……/bin/oci.dll"
OCIDLL forced to……
LoadLibrary(……oci.dll) returned 0

解決辦法是:在64位的機器上安裝32位的Oracle客戶端。這樣的話便連接成功。

依據:
從安裝角度考慮,32bit的平台(操作系統和硬體系統)只支持32bitORACLE的安裝;
64bit平台既支持32bitORACLE的安裝也支持64位ORACLE的安裝;