这里有一个示例,其中使用了显式游标来解决任务。
set serveroutput on
DECLARE
CURSOR c_1
IS
SELECT
LNR, LFNDNR, DATUM, STUECK, ANR
FROM
lagerbuchung;
CURSOR c_2(p_LNR INT)
IS
SELECT
ORT
FROM
LAGER
WHERE
lager.LNR = p_LNR;
v_ort varchar(45);
BEGIN
F
我在Scott模式中运行以下代码:
SET serveroutput ON;
BEGIN
FOR c_Emp IN (SELECT * FROM emp)
LOOP
dbms_output.put_line('The record processed by the cursor ' || c_Emp%rowcount);
END LOOP;
end;
这将产生以下错误:
游标属性不能应用于非游标“”C_EMP“”
但是,如果这是使用显式游标完成的,则可以很好地工作:
将serveroutput设置为on;
DECLARE
emp_record emp%ROWT
mongodb文档提到了一个杀死PyMongo游标的函数:
kill_cursors(cursor_ids) Send a kill cursors message with the given ids.
Raises TypeError if cursor_ids is not an instance of list.
Parameters : cursor_ids: list of cursor ids to kill
但是,它并没有指定(据我所知)如何实际找到光标的id。我怎么才能得到这个呢?
from pymongo import Connection
c = Connecti
我正在将存储过程从TSQL转换为雪花脚本,我被困在游标的迭代中。
我试着查看API,但找不到适用于这种情况的任何示例。
TSQL:中的原始代码
OPEN C_procedure;
FETCH NEXT FROM C_procedure INTO @nom_procedure;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @RequeteSQL = 'EXECUTE ' + @nom_procedure + ' ' + @nom_schema_source
PRINT @RequeteSQL
我有一个PL/SQL包,在这个包中,我要声明一个select状态,它被其他不同的包使用。所以我想办法。首先,我定义了一个游标,它可以从其他包中调用并存储select。第二种方法是存储select的过程。
有人能告诉我每种方法的优缺点吗?我的教授说,光标是老的,状态良好,今天没有人使用这个。我的主厨告诉我游标的迭代速度更快,你可以制作它的类型。
谁能告诉我这里的最佳做法是什么?
例如:
CURSOR crs_active_customer IS
SELECT * FROM customer where status = 'active'
或
PROCEDURE prc_getA
我的数据库中有一个函数,它返回许多行:
CREATE FUNCTION lots_of_rows(n integer) RETURNS SETOF integer
STABLE LANGUAGE plpgsql AS $$ BEGIN
FOR i IN 1..10000000 LOOP
RETURN NEXT i * n;
END LOOP;
END $$;
毫不奇怪,使用此函数的查询速度并不快:
=# EXPLAIN ANALYZE SELECT n FROM lots_of_rows(4) as n;
嗨,我这里有两组代码
1.
DECLARE
CURSOR C_EMP IS SELECT * FROM EMP;
TEMP EMP%ROWTYPE;
BEGIN
OPEN C_EMP;
FOR TEMP IN C_EMP
LOOP
FETCH C_EMP INTO TEMP;
UPDATE EMP SET NAME = 'Great' where id = 1;
DBMS_OUTPUT.PUT_LINE('EMP ID IS '|| TEMP.ID);
DBM
我来自sql服务器背景,正在努力掌握oracle的语法。我试图从一个存储过程返回一些记录,但得到一个错误:
CREATE OR REPLACE PROCEDURE SP_GetCustomers(username IN VARCHAR2)
AS
BEGIN
if username = 'all' then
select *
from customers c;
else
select *
from customers c
where c.created_by = username;
请告诉我这个过程中有什么不好的地方。错误是8,9行中的PLS-00103
create or replace PROCEDURE test_one(l_f_name VARCHAR2,l_l_name VARCHAR2)
IS
CURSOR c1(f_name VARCHAR2,l_name VARCHAR2) IS
SELECT lastname,firstname
FROM CUSTOMER;
v_complex c1%ROWTYPE;
f_name = l_f_name;
l_name = l_l_name;
BEGIN
open c1(f_
我在Oracle的SCOTT中创建了包/正文,如下所示。
-- PACKAGE SPECIFICATION:
create or replace package emp_pkg Is
TYPE tbl_emp IS TABLE OF EMP%ROWTYPE;
PROCEDURE p_displayEmpName;
end emp_pkg;
-- PACKAGE BODY:
create or replace package body emp_pkg Is
PROCEDURE p_displayEmpName IS
CURSOR c_rec
有人能解释一下游标到底是怎么工作的吗?还是下面部分代码的流程?我知道这是子活动,但我不明白游标是如何工作的。
final Uri data = Uri.parse("content://contacts/people/");
final Cursor c = managedQuery(data, null, null, null, null);
String[] from = new String[] { People.NAME };
int[] to = new int[] { R.id.itemTextView };
SimpleCursorAdapter adapter
我有一个游标,它指向一个SELECT,但是这个select是动态生成的。我想在申报表后指定结单。我已经做了一个例子工作和另一个例子无效。这是一个只打印某些数据的简单示例。这张桌子是:
CREATE TABLE public.my_columns (
id serial NOT NULL,
"name" varchar(30) NOT NULL,
/* Keys */
CONSTRAINT my_columns_pkey
PRIMARY KEY (id)
) WITH (
OIDS = FALSE
);
CREATE INDEX
当我在sql developer中运行下面的代码时,我有以下错误。我找不到这段代码的问题所在。概念: cursor Base1中的sql返回大约100行。我想使用这些行中的每一行作为sql inside目标cusor的输入,它会进一步返回几行。我得到的错误是:
当需要以下内容之一时,遇到符号"(“:。散装成
当需要以下内容之一时,遇到符号";“:。(,百分比来自
在需要以下内容之一时遇到符号"CLOSE“:end not杂注最终可实例化顺序重写静态成员构造函数映射
set serveroutput ON
Declare
Type Beg_Ser_Tab
我已经编写了一年的基本web应用程序(针对Oracle db),而且由于函数非常简单,我们大多数人都坚持使用正则for循环来获取数据:
for i in (select * from STUDENTS) loop
htp.prn(i.student_last_name || ', ' || i.student_first_name || ' ' || i.student_dob);
end loop;
但是,游标似乎是做事情的“正确”方式。我可以找到很多关于游标是什么以及循环它们的不同方法的信息,但是我找不到一个充分的理由来使用游标在正则循环上。这是
CREATE TABLE T1(c1 varchar(10));
CREATE OR REPLACE PROCEDURE FOO()
BEGIN
FOR C AS WITH TT (C1) AS (VALUES (1) , (2) , (3)) SELECT C1 FROM TT
DO
INSERT INTO T1 VALUES ('aaa');
COMMIT;
END FOR;
END
@
当我执行这个存储过程时,我会得到以下错误:
db2“调用foo()”
SQL0501N在FETCH语句或CLOSE语句中指定的游标没有打开,或者游标标量函数引用中的游标变量没有打开。
我有一个光标发出寻呼机消息,偶尔也会发送副本。语法如下所示:
declare @col1 varchar(255),
@col2 varchar(255)
declare c cursor local for
select column1, column2
from table
where flippity = 'floppity'
open c
fetch from c into @col1, @col2
While @@FETCH_STATUS = 0
begin
sp_do_
我在一个函数中有以下代码
CREATE OR REPLACE FUNCTION my_func (
v_dt events.raised_date%TYPE
)
RETURN SYS_REFCURSOR
IS
p_events SYS_REFCURSOR;
OPEN p_events FOR
SELECT event_id
FROM events
WHERE r
我尝试了一个SQL测试,得到了这个问题:
Choose one or more correct statements:
A. ROWCOUNT of an implicit cursor gives the total number of rows matched by the query
B. ROWCOUNT of an explicit cursor gives the total number of rows fetched so far
C. ROWCOUNT of an implicit cursor gives the total number of rows fetched s