Ed Heal Asked: 2015-10-06 01:29:05 +0800 CST2015-10-06 01:29:05 +0800 CST 2015-10-06 01:29:05 +0800 CST SQL 开发人员 - 仅用于会话的过程 772 是否可以仅为 SQL 开发人员会话创建一堆过程,以便在会话结束时删除这些过程? oracle oracle-sql-developer 1 个回答 Voted Best Answer Balazs Papp 2015-10-06T01:47:36+08:002015-10-06T01:47:36+08:00 您可以做的最接近的事情是在匿名块中定义过程,例如: Declare val number; Procedure P1(abc in number, def out number) is begin def := abc*abc; end; begin For i in 1..10 loop P1(i,val); dbms_output.put_line(val); End loop; end; / 另一个特性是在 12c 中为单个 SQL 调用定义 PL/SQL 函数。 在 WITH 子句中使用 PL/SQL 函数 例如: WITH FUNCTION get_domain(url VARCHAR2) RETURN VARCHAR2 IS pos BINARY_INTEGER; len BINARY_INTEGER; BEGIN pos := INSTR(url, 'www.'); len := INSTR(SUBSTR(url, pos + 4), '.') - 1; RETURN SUBSTR(url, pos + 4, len); END; SELECT DISTINCT get_domain(catalog_url) FROM product_information; /
您可以做的最接近的事情是在匿名块中定义过程,例如:
另一个特性是在 12c 中为单个 SQL 调用定义 PL/SQL 函数。
在 WITH 子句中使用 PL/SQL 函数
例如: