我有一个将从web应用程序调用的pl/sql过程。它需要返回一个字符串列表。我该怎么做呢?
Oracle Database 11g Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
"CORE 11.1.0.6.0 Production"
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
我在Server和Oracle上都编码。
当我在Server中编码时,我使用了以下内容:
OPEN curUSERS;
CLOSE curUSERS;
DEALLOCATE curUSERS;
现在,当我在Oracle中编码时,我使用了以下内容:
OPEN curUSERS;
CLOSE curUSERS;
我在PL/SQL中看到了一个DEALLOCATE关键字,但是当我使用这个语句时
DEALLOCATE(curUSERS);
它抛出一个错误。我如何在PL/SQL中做同样的事情(去分配)?
是否有更简单的方法从PL/SQL程序(Oracle 10G)中关闭所有打开的游标。
我有一个可以生成许多异常的程序。要正确退出,我需要检查是否有任何游标打开并关闭。这就是我最终要面对的情况。
Procedure test
is
--
---
Begin
--
--
Exception
when no_data_found then
if cursorA%isopen close
if cursorB%isopen close
if cursorC%isopen close
when invalid_date then
if cursorA%isopen c
关于游标(特别是Oracle游标)的快速问题。
假设我有一个名为"my_table“的表,它有两列,一个ID和一个名称。有数百万行,但是name列始终是字符串'test‘。
然后,我运行这个PL/SQL脚本:
declare
cursor cur is
select t.id, t.name
from my_table t
order by 1;
begin
for cur_row in cur loop
if (cur_row.name = 'test') then
dbms_output.put_line
我是PL/SQL的新手,并且还在尝试使用游标。我想要验证一个插入过程,所以我写了另一个过程来这样做。
CREATE OR REPLACE PROCEDURE verify_insert
IS
CURSOR map_cur IS
SELECT Page_ID_NBR, Page_Type, Page_Dcpn FROM SSC_Page_Map;
map_rec map_cur%ROWTYPE;
BEGIN
OPEN map_cur;
FOR map_rec in map_cur
LOOP
DBMS_OUTPUT.PU
当我尝试执行这个PL/SQL时,首先选择for循环中出现了Oracle /SQL 01403“无数据找到”错误。
declare
CURSOR
tempRow IS SELECT t2.*
FROM TABLE2 t2
JOIN TABLE3 t3 on t3.ID = t2.ID_FB;
updateId integer;
B TABLE1.A%TYPE;
BEGIN
FOR item IN tempRow
LOOP
我们有一个返回SYS_REFCURSOR的Oracle PL/SQL函数,我们希望将此函数转换为DB2数据库。Oracle函数:
create or replace function queryuser(p_tbname in varchar2, p_user in varchar2)
return sys_refcursor
is
l_cursor sys_refcursor;
v_sql varchar2(2000);
begin
v_sql := 'select productid from ' || p_tbn
我对pl/SQL并不熟悉,我正在尝试创建一个显示表'BUS‘中的值的过程。请帮帮我。我使用SQL*Plus作为Oracle数据库10g企业版10.2.0.1.0版的命令行接口工具。
SQL> create or replace procedure get_bus_table
2 in
3 begin
4 select * from bus;
5 end;
6 /
Warning: Procedure created with compilation errors.
我正在编写一个函数,它需要同时操作多个行,并且它们需要被索引。在阅读了几个小时关于Oracle pl/sql的文章之后,我想我可以创建一个嵌套的表类型的集合。因为我找不到确切的答案,所以试错法要用很长时间。下面是问题部分:问题:填充嵌套表集合的最佳实践是什么?Oracle /SQL
type partsTable is table of Parts_north_wing%rowtype;
pt PartsTable;
index number;
cursor pCursor is select * from Pa
我有emp表,因为没有记录。我在SQL和PL/SQL块中使用了这些表
SQL> BEGIN
2 FOR i IN (SELECT * FROM emp WHERE 1=2) -- emp table having no data
3 LOOP
4 dbms_output.put_line('Done');
5 END LOOP;
6 EXCEPTION
7 WHEN no_data_found THEN
8 dbms_output.put_line('No such value');
9
我对PL/SQL非常陌生,我希望能够利用oracle SQL的过程选项。
我有一个查询,我想要转换成一个PL/SQL查询,它接受您想要的SKU,并在查询中有SKU这个词时输入。
示例:
SELECT A.*, CT.CUSTOMER_ID, CT.ORDERS
FROM CUSTOMER_TABLE CT
RIGHT JOIN
(
SELECT OT.COLUMN_ID, OT.SKU, OT.ORDERS
FROM ORDERS_TABLE OT
WHERE OT.SKU = 123
)A
ON CT.ORDERS = OT.ORDERS
AND CT.SKU IS > 0
这是一个严
我在第二行执行这个PL/SQL时有一个oracle错误:选择.但看在上帝份上!我已经检查过是否有空值
IF zocRole IS NOT NULL and devices.unit_id IS NOT NULL THEN
SELECT unit_role_id INTO unitRoleId FROM T_UNIT_ROLE WHERE role_id = zocRole AND unit_id = devices.unit_id;
END IF;
我有一张桌子,像这样:
create table police(
ssn
name
boss_name
salary
);
Insert into police values(1,’A’,’C’,10000);
Insert into police values(2,’B’,’D’,20000);
Insert into police values(3,’C’,’E’,30000);
Insert into police values(4,’D’,’E’,45000);
Insert into police values(5,’E’,NULL,55000);
我想要一个返回polices w
我遇到了一个简单的数据导入器/更新器的问题,它从Informix获取数据,将其插入到Oracle中的表中,然后更新原始表中的标志。设置是这样的
Pro*C program calls a PL/SQL procedure
The procedure
opens a cursor on Informix,
loops through each row
insert the data into an oracle table
commit
update the "new data" flag in Informix (i.e. stop a re
我正在使用Oracle (Oracle 11.1.0.7.0)。我已经在包MyPackage中创建了一个示例存储过程。我是以"DBA_USER“用户身份登录的,因为我创建了这个SP。
PROCEDURE WT_MANAGEMENT_PRODUCTIVITY
(
cur_output Out T_CURSOR
)AS
sqlstr VARCHAR2(5000);
BEGIN
Sqlstr:='select sysdate from dual';
Open cur_output For Sqlstr;
END WT_MANAGEMENT_PRODUCTI
create or replace procedure get_emp(p_deptno number,emp_det out sys_refcursor)
is
begin
open emp_det for select * from emp where deptno=p_deptno;
end;
/
如何在oracle pl/sql中传递sys_refcursor参数以及如何使用匿名块打印结果
我想在Python语言中通过cx_oracle执行一条Oracle PL/SQL语句。代码如下所示:
db = cx_Oracle.connect(user, pass, dsn_tns)
cursor = db.cursor()
...
sel = """
DECLARE
c NUMBER := 0.2;
mn NUMBER := 1.5;
res NUMBER;
BEGIN
res := c+mn/6.;
END;
"""
try:
cursor.execute(sel)
print "PL/SQ
create or replace PROCEDURE GEN_STATEMENT_SP(indexNM IN VARCHAR2, tableNM IN VARCHAR2) AS
BEGIN
DECLARE
uniqueSTMT VARCHAR2(30);
nonUniqueSTMT VARCHAR2(30);
charOn VARCHAR2(5);
tempfld VARCHAR2(500) ;
CURSOR chkTyp IS(SELECT ES_UNIQUENESS from sys.dba_ind_columns where INDEX_NAME = indexNM and TA