Mục lục
Mô tả trong cơ sở dữ liệu Oracle
ORA-06512 trong oracle là một trong những lỗi phổ biến thường thấy trong các chương trình PLSQL trong cơ sở dữ liệu Oracle
Đây là những gì tài liệu Oracle nói về lỗi này
Tham khảo:Tài liệu Oracle
Bạn luôn có thể tìm thấy điều này bằng cách nhập vào bên dưới trong Unix
oerr ORA 06512
Giải thích về lỗi ORA-06512:
Lỗi ORA-06512 có nghĩa là thông báo backtrace vì ngăn xếp đang bị ràng buộc bởi các ngoại lệ không được xử lý trong mã PLSQL của bạn. Đây là lỗi bắt tất cả cho Tất cả các ngoại lệ PLSQL và thường thấy.
ORA 6512 không chỉ ra lỗi thực sự mà là số dòng của lỗi chưa được xử lý trong mã PLSQL. ORA-6512 thường sẽ xuất hiện trong một ngăn xếp thông báo trong đó thông báo trước đặt tên cho lý do gây ra lỗi, chẳng hạn như trong ví dụ sau:
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 1112
Ở trên, lỗi được đánh dấu màu vàng là lỗi chính
Lý do gây ra lỗi ORA-06512:
Các tùy chọn để giải quyết lỗi Oracle này là:
1) Khắc phục tình trạng gây ra lỗi chưa được khắc phục.
2) Viết trình xử lý ngoại lệ cho lỗi chưa được khắc phục này.
3) Liên hệ với Oracle DBA của bạn để được trợ giúp.
Ví dụ về ORA-06512:
Hãy xem một vài ví dụ về cách làm việc với nó
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; end; / Procedure created. sql> Exec Testora_proc ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 5
Trong ví dụ được đưa ra ở trên, thủ tục được biên dịch thành công nhưng nó có lỗi khi thực thi
Vì vậy, lỗi thực tế là lỗi
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Chúng tôi có thể dễ dàng sửa nó bằng cách tăng kích thước của biến
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(20); begin site_name := 'techgoeasy.com'; end; / Procedure created. SQL> Exec Testoraproc PL/SQL procedure successfully completed.
Chúng tôi cũng có thể giải quyết vấn đề này bằng cách sử dụng trình xử lý ngoại lệ
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; EXCEPTION WHEN OTHERS THEN site_name := 'tech'; end; / Procedure created.SQL>Exec Testoraproc; PL/SQL procedure successfully completed.
Một ví dụ khác sẽ là
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Đây là lỗi thực sự của ORA-01422. chúng tôi có nhiều hơn 1 hàng trong bảng db_node và nhận nhiều giá trị cho nút. Vì vậy, một bản sửa lỗi có thể là giới hạn một hàng
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Một ví dụ khác sẽ là
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01403: no data found ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Đây là lỗi thực sự của ORA-01403. chúng tôi không có hàng nào trong bảng db_node oracle và chúng tôi không tìm thấy lỗi dữ liệu nào. Vì vậy, một bản sửa lỗi có thể là đặt xử lý ngoại lệ
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; EXCEPTION WHEN NO_DATA_FOUND THEN node_name := 'tech'; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Một số ví dụ khác có thể có trên SYS.UTL_FILE
SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Ở đây lỗi chính là ORA-29283. Kiểm tra giải pháp bằng cách nhấp vào liên kết
Hy vọng bạn thích bài đăng này trên ORA-6512 Thông báo lỗi
Các bài viết có liên quanORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 trong Thu thập thống kê giản đồ vào 11g (FND_HISTOGRAM_COLS )