Я хочу использовать некоторые умные процедуры, которые я написал, но не хранить их.Например, вот этот довольно большой выбор, который извлекает первичные ключи для таблицы:
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;
Я не хочу помнить это, даже не вводить его каждый раз, когда мне нужны ограничения таблицы.НО я не хочу создавать процедуру для этого в БД, потому что это прод-БД, и никто больше не нуждается в моей процедуре.Просто я.Просто для разработки.
Так вот, где я сейчас нахожусь:
SQL> declare procedure hello as begin dbms_output.put_line('Hello world!'); end; begin hello; end;
2 /
Hello world!
PL/SQL procedure successfully completed.
SQL> hello;
SP2-0042: unknown command "hello" - rest of line ignored.
... так что я могу объявить и определить функцию приветствия из командной строки.Я могу вызвать его из блока begin - end после объявления, но после этого процедура приветствия исчезла.
Вопрос: есть ли решение сделать второй "привет"?работать, поэтому я могу создавать умные и полезные процедуры и не создавать мусор в самой БД?
Если это сработает, я бы создал файл с этим и сделал бы псевдоним для sqlplus, чтобы он выполнялся взапуск.