我试图根据这个中提供的指令进行插入。
我可以运行这个例子
CREATE OR REPLACE PROCEDURE test_proc (p_array_size IN PLS_INTEGER DEFAULT 100)
IS
TYPE ARRAY IS TABLE OF all_objects%ROWTYPE;
l_data ARRAY;
CURSOR c IS SELECT * FROM all_objects;
BEGIN
OPEN c;
LOOP
FETCH c BULK COLLECT INTO l_data LIMIT p_array_size;
我得到了以下错误,谁能给我一个例子来避免它:
ERROR: cannot begin/end transactions in PL/pgSQL
HINT: Use a BEGIN block with an EXCEPTION clause instead.
CONTEXT: PL/pgSQL function transfer(integer,integer,numeric) line 13 at SQL statement
PL/pgSQL function inline_code_block line 2 at EXECUTE
SQL state: 0A000
START TRAN
我正在尝试编写简单的PL/SQL过程来在Oracle Schema中重建索引。
代码在作为PL/SQL匿名块编写和执行时运行良好,但在作为PL/SQL过程编写和执行时抛出错误。
请看一看,并回应任何关于如何解决这个小难题的陷阱或建议。
--IDX_REBUILD: Anonymous Block
set timing on;
SET SERVEROUTPUT ON;
DECLARE
CURSOR Index_Cur IS
SELECT owner, index_name
FROM cjb_indexes
WHERE (owner li
我正在执行pl / sql (oracle)到sql / pl ( DB2 )中的过程迁移,并且不知道如何将子过程传递给DB2
由于我不是系统管理员,所以不能将DB2更改为pl / sql兼容。
示例
create or replace PROCEDURE "SP_NOSTRADAMUS_PRODUTO"
AS
V_EXISTE_TAB NUMBER := 0;
PROCEDURE PR_HIRQ_PRODUTO_OR
AS
BEGIN
END
如何将参数传递到DBMS_JOB/调度程序异步调用。我有一个长期运行的PL/SQL过程,它需要很少的参数,包括SQL整数表(ids)。如何创建异步调用此PL/SQL长时间运行过程并将参数传递给它的过程?
PROCEDURE "RUN_ARCHIVING_SEARCH"
(
a_arch_rule_code_id_list IN INLISTNUMBERS,
a_lang IN VARCHAR2,
a_session_id IN NUMBER
)
Thnx,Beef
我是一名java/j2ee开发者。我总是喜欢JPA/JTA或hibernate for ORM。因为它给了我可移植性。但对于大型应用程序,可移植性有时并不那么重要。很多时候,他们要求按BE方式使用PL/SQL。我总是觉得这没有必要。除了数组和调度等,使用PL/SQL时,应用程序逻辑在java和PLSQL中变得支离破碎。
PLSQL在性能/设计/可维护性方面更好的业务/应用场景是什么?
我正在使用SQL Developer调试代码,如下所示,只有在完成所有存储过程后,输出结果才会显示在调试对话框中。我需要打开一些配置吗?
谢谢
FOR j IN REVERSE 1..i LOOP
DBMS_OUTPUT.PUT_LINE(emp_tab(j).first_name);
END LOOP;
日志
Connecting to the database hr.
Executing PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE
Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP(
我正在尝试编写一个存储过程来重新编译在DB2中创建的所有PL/SQL包。
我有许多PL/SQL包,其中引入了多个存储过程。例如,
create or replace package packagename
is
procedure procedurename;
end packagename;
我想从其他包中的存储过程编译这些包,因为有一些存储过程会改变表的定义,如向表中添加列等。为了避免任何缓存问题,我希望重新编译它们。
有没有办法以编程方式编译这样的存储过程?
在分配日期时间格式时,我在实现PL/SQL过程时遇到了问题。我指的是我的MySQL存储过程,我是Oracle /SQL的新手。
下面是我从MySQL过程中进行的PL/SQL转换
CREATE OR REPLACE
PROCEDURE "DateTimeSP" (xType IN VARCHAR2, xResult OUT VARCHAR2)
AS
BEGIN
CASE
WHEN xType = 'TIME' THEN
SELECT CURRENT_TIMESTAMP() FROM dual INTO xResult;
我用PL/SQL编写并执行了这个简单的存储过程。
CREATE OR REPLACE PROCEDURE test_sp
IS
BEGIN
dbms_output.put_line('Test');
END;
我尝试在PL/SQL中这样调用它:
CALL test_sp;
但我最终得到了这个错误:
ORA-06576: not a valid function or procedure name
这是一个简单的调用,是语法错误还是缺少某种权限?
groovy教程中:
有关于程序的部分。当我尝试这个例子时:
The same example again but with a GString variation:
def first = 'Sam'
sql.call("{$Sql.VARCHAR = call FullName($first)}") { name ->
assert name == 'Sam Pullara'
}
我得到了异常:
Chyba: ORA-06550: line 1, column 13:
PLS-00222: no function with n
create or replace function gen.sample_func(owner varchar2) return varchar2
as
data_t varchar2(10);
cursor cur is select data_type from SYS.DBA_TAB_COLUMNS;
begin
open cur;
dbms_output.put_line('Done');
close cur;
return data_
我有一个具有以下签名的pl/sql过程。
PROCEDURE pr_log_process_started (
p_process_id IN log_process_status.process_id%TYPE,
p_run_id IN OUT log_process_status.run_id%TYPE);
如何通过Hibernate调用此proc并在调用后访问第二个参数的值?