Наскоро видях някой да посочи, че има технология на Oracle на място преди няколко години. Тази технология промени SQL*Plus, така че обратната връзка казваше нещо като „избрани около XX реда“, вместо само „избрани XX реда“. Той се чудеше как техниката го направи. Просто трябваше да се заровя в това и да се забавлявам с него. Успях да променя текста за обратна връзка и ето как изглежда сега в SQL*Plus за мен:
SQL> задайте обратна връзка 1
SQL> изберете * от всички_потребители, където rownum <3;ПОЛЗ. ИМЕ ПОТРЕБИТЕЛСКИ_ИД СЪЗДАДЕНО --------------------------- --- ---------- --------- SYS 0 30-JAN-09 SYSTEM 5 30-JAN-09 избрани приблизително 2 реда. Дайте или вземете.
SQL> изберете системна дата от двойна;
SYSDATE
———
22-АВГ-12
Избран е 1 ред. Само едно.
И така, как накарах SQL*Plus да промени текста за обратна връзка? Просто.
1. Отидете на $ORACLE_HOME/sqlplus/mesg
2. Направете архивни файлове на sp1us.msg и sp1us.msb (забележете, аз съм в САЩ, така че моята инсталация е „нас“, може да имате различен двузначен код на държавата).
3. Отворете sp1us.msg в текстов редактор. Накарах файла да има следните записи:00005,0, "1 row selected. Just one."
// *Cause:
// *Action:
00006,0, "approximately %ld rows selected. Give or take."
// *Cause:
// *Action:
4. Запазете промените си и излезте от редактора.
5. Компилирайте msg файла в двоичния msb файл.lmsgen sp1us.msg sqlplus sp1 american
Това е всичко!
Реших да се забавлявам малко повече с него. Този път исках да променя съобщението, доставено със съобщението ORA-00942. Така че промених $ORACLE_HOME/rdbms/mesg/oraus.msg, след като направих резервно копие на него и неговия двоичен msb файл. След това използвах LMSGEN, за да компилирам msg файла:lmsgen oraus.msg rdbms ora american
Сега, когато правя заявка за несъществуваща таблица, получавам следното:SQL> select * from no_table;
select * from no_table
*
ERROR at line 1:
ORA-00942: this is not the table you are looking for
Разбира се, това е само за забавление. Никога не бих направил това в производствена среда. И никога не знаете кога корекцията ще промени тези файлове, така че поддържането на персонализирани съобщения може да отнеме време в дългосрочен план. Но е забавно да играеш с това и да объркаш някого следващия път, когато ударът ORA грешка.