我创建过程以输出多行和多列。
create or replace PROCEDURE MYPROC(
C1 OUT SYS_REFCURSOR )
AS
BEGIN
OPEN C1 FOR SELECT * FROM A_TABLE;
END MYPROC;
我编译它时没有错误。但我不能说我的程序像平常一样
Exec MYPROC;
我有这个错误。
Error report -
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'MYPROC'
例如,如果我写道:
select employee_id,last_name from employees;
我将获得"EMPLOYEES“表中的所有行。如果我写道:
declare
id employee_id.employees%type;
ln last_name.employees%type;
begin
select employee_id,last_name into id,ln
我有以下错误信息。
2011-08-08 14:27:09 [E]: xxx - ORA-06502: PL/SQL: numeric or value error:
character string buffer too small
ORA-06512: at "xxx", line 1671
ORA-06512: at "xxx", line 2083
ORA-06512: at "xxx", line 921
ORA-06512: at line 1
你能告诉我为什么有这么多行吗?它是堆栈展开还是消息被人为地组合在一起?
我已经使用PL/SQL编写了简单的代码来从表中删除多行,但下面的代码每次触发时只删除一行。
DECLARE
i number(2);
BEGIN
FOR i IN 1..4 LOOP
DELETE FROM table_name WHERE rownum = i;
dbms_output.put_line('i is: '|| i);
END LOOP;
END;
有人能建议一下代码出了什么问题吗?
我试图根据这个中提供的指令进行插入。
我可以运行这个例子
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;
我想在一个表中插入多行。
查询将是:
insert into temp(table_name,run_date,table_count)
select 'TABLE_A',sysdate,count(*) from A;
insert into temp(table_name,run_date,table_count)
select 'TABLE_B',sysdate,count(*) from B;
insert into temp(table_name,run_date,table_count)
select 'TABLE_C',sys
因此,我一直在学习关于宏的C编程,并使用它们,但是在我的工作中,我经常使用PL/SQL,我想知道在PL/SQL中是否有什么方法可以完成相同的事情。现在,我让它用3个不同的值调用一个函数,然后返回一个值,但是这个函数非常简单,我想我可以在原始存储过程内部完成它。在C中,宏是代码的一行(或多行),编译时被调用完全取代,但它比一次又一次调用函数更有效。
C中的示例:
#define query(fieldValue, Attribute, Table) (select fieldValue from Table where record = Attribute)
当在代码正文中调用时,查询( val
我是甲骨文新手。我使用pl sql developer在oracle数据库中创建了一个函数,并成功执行。现在,我想通过查询从同一个pl sql开发人员运行该函数。但它不能正常工作。下面是我的函数。
create or replace function com.my_first_test_function(module_code out varchar2,
bpm_process_name out varchar2,module_name out varchar2,input in number)return number is
y_return
我正在执行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
我编写了一个sql查询。
select a.unit_code unit,
a.gh_vill pl_vill,
a.gh_grow pl_grow,
(select gh_area
from w_cane_survey_2013 b
where b.croptype_code > 12 and a.gh_no = b.gh_no ) as paudha,
(select gh_area
from w_cane_survey_2013 b
where b.crop