我正在开发Oracle Forms Builder 10g。在我的应用程序中,我有一个嵌套的表类型,其中包含一堆varchar2。它是类型my\u type\u 1是varchar2(255)
的表。我在数据库中创建了相同的类型。
现在,我正在创建一个基于存储过程的表单。我想传递一个变量的my_type_1
在身体是这样的:
procedure my_proc (my_var_in_out IN OUT some_type, my_var_test IN my_type_1) is
cursor my_cursor(id varchar2(255)) is
select name from emp where emp_id = id;
idx number := 1;
begin
for I in my_cursor(my_var_test ) loop <<< this is where I'm stuck. Can I pass it like that ?
my_var_in_out (idx) := I;
idx := idx +1;
end loop;
end;
您可以像下面这样循环:
创建的类型
CREATE OR REPLACE TYPE my_type_1 IS TABLE OF VARCHAR2 (1000);
/
CREATE TABLE emp
(
fname VARCHAR2 (100),
emp_id VARCHAR2 (10)
);
SQL> select * from emp;
FNAME EMP_ID
---------------------------------------------------------------------------------------------------- ----------
XXX 1
YYY 2
程序
CREATE OR REPLACE PROCEDURE my_proc (my_var_test IN OUT my_type_1)
IS
CURSOR my_cursor (my_var_test my_type_1)
IS
SELECT fname
FROM emp
WHERE emp_id MEMBER OF my_var_test; --<--This is how you implement in clause while using a collection
v_var my_type_1 := my_type_1 ();
BEGIN
OPEN my_cursor (my_var_test);
FETCH my_cursor BULK COLLECT INTO v_var;
CLOSE my_cursor;
FOR rec IN 1 .. v_var.COUNT
LOOP
my_var_test (rec) := v_var (rec);
END LOOP;
END;
执行:
DECLARE
var my_type_1 := my_type_1 ();
BEGIN
var.EXTEND(2);
var (1) := '1';
var (2) := '2';
my_proc (MY_VAR_TEST => var);
FOR i IN 1 .. var.COUNT
LOOP
DBMS_OUTPUT.put_line (var (i));
END LOOP;
END;
输出:
SQL> /
XXX
YYY
PL/SQL procedure successfully completed.
如何使用表(X)作为输入参数编写Oracle存储过程,并且在过程中使用表X与另一个表Y联接? 表X将有数千条记录。 不希望将表名传递为varchar,然后使用动态SQL(因此,此选项不在画面中)
我可以在Oracle中通过ODBC执行一批存储过程吗?存储过程具有我使用参数标记绑定的输入参数。 在SQLServer中,我有这个功能,在DB2中,我只能进行批处理插入/更新,但我不能从ODBC/C代码批处理存储过程。 Oracle似乎支持插入语句的批处理,如果使用JDBC,也可以批处理存储过程。 是否可以做同样的事情,但使用对存储过程和ODBC的调用? 谢谢
问题内容: 简而言之:我正在尝试在Entity Framework中运行Oracle存储过程(我知道这听起来很奇怪,但是在一般应用程序中使用Entity Framework,但是由于修改密钥的限制,EF无法处理此特定命令。值)。 过程具有一些参数(仅IN),并更新表中的值。我通过运行测试了它: 它工作正常。 我的参数定义如下: 我的查询是: 我正在尝试从C#代码执行它。即通过运行: 我收到错误OR
下面是我的Oracle存储过程, 我得到以下异常:hibernate:{CALL REPORT_HIBERNATE(?)}org.hibernate.exception.GenericJDBcException:无法执行查询...并且由:java.sql.sqlException:无效的列索引引起 Plz让我知道在Spring中我将如何使用Hibernate注释调用这个存储过程??
本文向大家介绍asp.net中oracle 存储过程(图文),包括了asp.net中oracle 存储过程(图文)的使用技巧和注意事项,需要的朋友参考一下 在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。 ORACLE代码 C#代码 调用方法 以上内容是通过代码介绍了asp.net中oracle存储过程。 接下来通过第二种的方式
我一直试图使用Hibernate执行Oracle存储过程。这不是用于生产,而是用于我正在研究的Java源代码解析项目。简单地说,我不能从Oracle存储过程返回值。 我搜索并阅读了SO、Hibernate Community/Documentations(原生SQL章节)链接中的所有相关链接,并尝试了这些建议,但不知何故无法让它们发挥作用。以下是我的来源--我只包括相关的部分。