Как да отворя съхранена процедура и да я редактирам в SQL*Plus

Трябва да направя някои промени в стара съхранена процедура на Oracle в остаряла кутия, която се съхранява наоколо, за да изпълнява стар наследен процес. Единственият инструмент, с който мога да се свържа с db, е SQLPlus. Как да заредя съхранена процедура в паметта за редактиране в SQLPlus?

Уроците, които намерих онлайн, не обясняват как се прави това. :-(


person Jeff    schedule 30.06.2009    source източник


Отговори (5)


Би било много по-лесно да изтеглите пробната версия на TOAD

изтрийте това предишно предложение, току-що изпробвах предложената връзка на Oracle SQL Developer и тя работи безупречно добре за процедури за редактиране.

за SQLPlus почти трябва да покажете съдържанието на съхранената процедура и да го споулирате във файл (както е предложено от DCookie :-)):

sqlplus> spool myprocname.sql;
sqlplus> select text from all_source where name = 'MYPROCNAME' and type = 'PROCEDURE' order by line;
sqlplus> quit;

след това редактирайте локалния SQL файл в приличен редактор.

След това използвайте SQLPlus, за да изпълните SQL файла, за да изградите повторно процедурата за тестване.

>sqlplus username/password@tnsnamesentry @myproc.sql

Накратко, огромна болка в кистъра. :-)

person Ron Savage    schedule 30.06.2009
comment
+1, но можете да изпратите изхода си във файл и поне да избегнете болката при изрязване/поставяне :-) - person DCookie; 01.07.2009

Можете да използвате функцията dbms_metadata.get_ddl за извличане на код, тя е много по-добра от all_sources.

spool /tmp/my_proc.txt
set long 100000
select dbms_metadata.get_ddl('PROCEDURE','NAME','OWNER') from dual;
spool off
person alexey    schedule 14.02.2012

Ако можете да се свържете с db с помощта на SQL*Plus, трябва да можете да се свържете с помощта на SQL IDE. Въпреки това не можете да отворите процедура за редактиране в SQL*Plus, но можете да компилирате такава. Можете да копирате вашата актуализирана процедура в командния ред (ред по ред, ако е необходимо) и да я компилирате.

Ако трябва да получите достъп до текущия източник по ръчен начин, можете да направите заявка в таблицата USER_SOURCE.

Силно препоръчвам обаче да разгледате възможността за свързване към DB с IDE.

person akf    schedule 30.06.2009

Кутията е HPUX без работещ TNS слушател, което почти унищожава целия набор от инструменти за разработка. Въпреки това DBA успя да се свърже с помощта на администраторски инструмент, наречен OEM, и да направи необходимите промени. Благодаря на всички за вашите предложения.

person Jeff    schedule 30.06.2009
comment
Донякъде е неудобно да съм извън *nix толкова дълго, че моето автоматично предположение е, че хората имат Windows на свое разположение... - person DCookie; 01.07.2009

Не можете ли да изтеглите и инсталирате Oracle SQL Developer? Безплатно е.

За Unix има TOra, (отворен код)

person DCookie    schedule 30.06.2009
comment
Unix кутия, свързвам се локално от hpux login. Няма TNS към db, така че мога да се свързвам само локално... - person Jeff; 01.07.2009
comment
Какво ще кажете за Тора? Отворен код: tora.sourceforge.net ... в противен случай оставате в спулинг на вашия източник към файл и използвайки редактор върху него. - person DCookie; 01.07.2009