我想用我写的一些智能程序,但不能存储它们。例如,下面是这个相当大的选择,检索该主键的表:如何创建oracle程序但不能存储
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;
我不想记住这一点,甚至没有键入它每次我需要一个表的约束时间。但我不想为此创建一个过程到数据库中,因为它是一个prod数据库,并且没有其他人需要我的过程。只有我。只是为了发展。
因此,这里是我现在所在:
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块中调用它,但在此之后,hello过程消失了。
问题:是否有解决方案来制作第二个“hello”?工作,所以我可以创建聪明和有用的过程,而不是在数据库本身做任何垃圾?
如果这可行,我会创建一个文件,并为启动时执行该文件的sqlplus别名。
您可以创建另一个架构并将您的程序放在那里。将不会污染生产用户... – 2012-02-01 10:41:20
您正在开发的prod数据库:) – 2012-02-01 10:42:28
好吧,它不是刺激,但许多其他开发人员使用它,并不希望污染它。 – torbatamas 2012-02-01 10:54:04