来自ALI.TDSP_JOB_XRF WHERE ORD_I =:wsOrdI AND DSP_NBR = 1 WITH UR; 但我一直收到错误: SQL0104N一个意外的令牌:"发现在WHERE ORD_I =之后。预期的令牌可以包括:< space>。 LINE NUMBER = 33。 SQLSTATE = 42601 但如果我删除了:,我会收到错误:WSORDI在使用它的上下文中无效。 LINE NUMBER = 30。 SQLSTATE = 42703 如何解决此问题?Hi all,I have a cursor declared as:DECLARE dispCSR CURSOR FOR SELECT JOB_I FROM ALI.TDSP_JOB_XRF WHERE ORD_I = :wsOrdI AND DSP_NBR = 1 WITH UR;but i keep getting the error:SQL0104N An unexpected token ":" was found following "WHERE ORD_I =". Expected tokens may include: "<space>". LINE NUMBER=33. SQLSTATE=42601but if i do remove the ":", i get the error: "WSORDI" is not valid in the context where it is used. LINE NUMBER=30. SQLSTATE=42703how do i fix this?推荐答案 大家好, 我将光标声明为: DECLARE dispCSR CURSOR SELECT JOB_I FROM ALI.TDSP_JOB_XRF WHERE ORD_I =:wsOrdI AND DSP_NBR = 1 WITH UR; 但我一直收到错误: SQL0104N一个意外的令牌:"发现在WHERE ORD_I =之后。预期的令牌可以包括:< space>。 LINE NUMBER = 33。 SQLSTATE = 42601 但如果我删除了:,我会收到错误:WSORDI在使用它的上下文中无效。 LINE NUMBER = 30。 SQLSTATE = 42703 我该如何解决这个问题?Hi all,I have a cursor declared as:DECLARE dispCSR CURSOR FOR SELECT JOB_I FROM ALI.TDSP_JOB_XRF WHERE ORD_I = :wsOrdI AND DSP_NBR = 1 WITH UR;but i keep getting the error:SQL0104N An unexpected token ":" was found following "WHERE ORD_I =". Expected tokens may include: "<space>". LINE NUMBER=33. SQLSTATE=42601but if i do remove the ":", i get the error: "WSORDI" is not valid in the context where it is used. LINE NUMBER=30. SQLSTATE=42703how do i fix this? 我知道你正在使用动态游标。 我需要一些更多信息... WSORDI是变量吗? 干杯Hi,I understand u are using a dynamic cursor.I need some more info...Is WSORDI a variable?Cheers是的,WSORDI是一个INTEGER变量。光标将根据WSORDI的值获取数据(这将是用户输入的形式) 谢谢!yes, WSORDI is an INTEGER variable. The cursor will fetch data depending on the value of WSORDI (this will be form user input)thanks! 我知道你正在使用动态游标。 我需要更多信息... WSORDI是变量吗? 干杯Hi,I understand u are using a dynamic cursor.I need some more info...Is WSORDI a variable?Cheers 是的,WSORDI是一个INTEGER变量。光标将根据WSORDI的值获取数据(这将是用户输入的形式) 谢谢!yes, WSORDI is an INTEGER variable. The cursor will fetch data depending on the value of WSORDI (this will be form user input)thanks! 我认为你已经使用了oracle语法。 你可以在游标声明中有一个动态语句 代码块可以是: 声明v_variable整数; 声明v_sql varchar(500); 为v_sql_stmt声明v_cursor游标; set v_sql =''从表中选择*,其中col1 =?''; 从中准备v_sql_stmt v_sql; 使用v_variable打开v_cursor; fetch循环..... 关闭v_cursor; 希望这篇文章有用.. 干杯I think you have used the oracle syntax.You can have a dynamic statement in the cursor declarationThe code block can be like:declare v_variable integer;declare v_sql varchar(500);declare v_cursor cursor for v_sql_stmt;set v_sql=''Select * from table where col1 = ?'';Prepare v_sql_stmt from v_sql;open v_cursor using v_variable;fetch loop.....close v_cursor;Hope this post was helpful..Cheers 这篇关于我的光标有什么问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-14 01:59