Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Vui vẻ với tin nhắn

Gần đây, tôi thấy ai đó cho biết rằng họ đã có một công nghệ Oracle trên trang web cách đây vài năm. Công nghệ này đã thay đổi SQL * Plus để phản hồi của nó cho biết điều gì đó như “khoảng XX hàng được chọn” thay vì chỉ “hàng XX được chọn”. Anh tự hỏi làm thế nào mà công nghệ này làm được điều đó. Tôi chỉ cần phải đào sâu vào điều này và có một số niềm vui với nó. Tôi đã có thể thay đổi văn bản phản hồi và đây là giao diện của nó bây giờ trong SQL * Plus đối với tôi:

SQL> đặt phản hồi 1
SQL> chọn * từ all_users nơi rownum <3; USERNAME USER_ID ĐÃ TẠO --------------------------- --- ---------- --------- SYS 0 30-JAN-09 SYSTEM 5 30-JAN-09 khoảng 2 hàng được chọn. Cho hoặc nhận.

SQL> chọn sysdate từ kép;

SYSDATE
———
22-AUG-12

Đã chọn 1 hàng. Chỉ một.

Vậy làm cách nào để sử dụng SQL * Plus để thay đổi văn bản phản hồi? Đơn giản.

1. Truy cập $ ORACLE_HOME / sqlplus / mesg
2. Tạo các tệp sao lưu của sp1us.msg và sp1us.msb (lưu ý, tôi ở Hoa Kỳ nên cài đặt của tôi là “chúng tôi”, bạn có thể có mã quốc gia hai ký tự khác nhau).
3. Mở sp1us.msg trong trình soạn thảo văn bản. Tôi đã tạo tệp có các mục sau:
00005,0, "1 row selected. Just one."
// *Cause:
// *Action:
00006,0, "approximately %ld rows selected. Give or take."
// *Cause:
// *Action:

4. Lưu các thay đổi của bạn và thoát khỏi trình chỉnh sửa.
5. Biên dịch tệp msg thành tệp msb nhị phân.
lmsgen sp1us.msg sqlplus sp1 american

Thats tất cả để có nó!

Tôi quyết định vui hơn một chút với nó. Lần này, tôi muốn thay đổi tin nhắn đã gửi bằng tin nhắn ORA-00942. Vì vậy, tôi đã sửa đổi $ ORACLE_HOME / rdbms / mesg / oraus.msg sau khi tạo bản sao lưu của nó và tệp msb nhị phân của nó. Sau đó, tôi sử dụng LMSGEN để biên dịch tệp tin nhắn:
lmsgen oraus.msg rdbms ora american
Bây giờ khi tôi truy vấn một bảng không tồn tại, tôi nhận được như sau:
SQL> select * from no_table;
select * from no_table
*
ERROR at line 1:
ORA-00942: this is not the table you are looking for

Tất nhiên, điều này chỉ là cho vui. Tôi sẽ không bao giờ làm điều này trong một môi trường sản xuất. Và bạn không bao giờ biết khi nào một bản vá sẽ sửa đổi các tệp này, vì vậy việc duy trì các thông báo tùy chỉnh có thể tốn thời gian về lâu dài. Nhưng thật thú vị khi chơi với điều này và khiến ai đó bối rối vào lần tiếp theo khi gặp lỗi ORA.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Video:Hiệu suất cột IDENTITY của Oracle 12c trên RAC

  2. truy xuất nhóm nhiều cột theo liên tục ngày

  3. Bắt đầu với Oracle SQL Developer trên Windows

  4. CHÈN và CẬP NHẬT bản ghi bằng cách sử dụng con trỏ trong oracle

  5. Sử dụng chuỗi chứa hàm trong truy vấn SQL oracle