我得到了。ORA-1722向过程传递一个单个变量而不是一个数字(如54,55,56)时出错。
在过程光标块中,我写了:
Select * from emp where deptid in( inputparameter);
运行该过程时,错误出现在上面的 select 语句中。
有没有办法在单个参数中处理这种情况
1) 您可以对该语句使用动态sql,并添加“inputparameter”,如字符串“54,55,56”
DECLARE
TYPE input_cursor IS REF CURSOR;
l_cursor input_cursor;
l_input_parameter VARCHAR2(4000) := '52,53,43';
BEGIN
open l_cursor for 'SELECT * FROM emp WHERE deptid in (' || l_input_parameter || ')';
END;
2)您可以为方案创建新类型,例如
创建或替换类型“TNUMBERLIST_TABLE”作为数字表
并像输入参数一样在您的过程中使用它,例如:
DECLARE
PROCEDURE output_list(p_table TNUMBERLIST_TABLE) IS
BEGIN
FOR cur IN (SELECT * FROM TABLE(p_table)) LOOP
dbms_output.put_line(cur.column_value);
END LOOP;
END;
BEGIN
output_list(p_table => TNUMBERLIST_TABLE(1,2,3,4,5,6));
END;
对于您的任务,它将是:
Select * from emp where deptid in (SELECT * FROM TABLE(p_table));
我不知道你需要做什么,但是你可以使用listagg
假设 id
列具有值 (54,55,56)
在您的过程中:
create or replace procedure P_TEST
as
begin
declare inputparameter varchar2(38);
begin
SELECT LISTAGG(COMP_CODE, ', ') WITHIN GROUP (ORDER BY COMP_CODE) into inputparameter
FROM emp ;
end;
end;
结果< code >输入参数= 1,3
问题内容: 假设我有这个功能: 我想这样称呼它: 当然,不能用这种方法来完成,因为Postgres试图用该名称和三个不存在的参数来查找函数。 我试图用引号引起来,但在这种情况下,参数解释错误: data1’,’data2’,’data3 ,就像一个字符串一样。 有没有一种方法可以在参数中放置多个值,以便IN子句可以识别它? 问题答案: 您的函数将不会被创建。之后是句法废话。 无论哪种方式,带有 参
问题内容: 我的报告中有几个“多项选择”参数。我正在尝试找到一种方法来为Web查询字符串中的单个参数传递多个值?如果我传递一个值,则可以正常工作。 该报告运行良好,可以为单个参数选择多个选项。我的麻烦在于网络查询字符串。 问题答案: 尽管John Sansom的解决方案有效,但还有另一种方法可以执行此操作,而不必使用可能效率低下的标量值UDF。在SSRS报告中,在查询定义的“参数”选项卡上,将参数
我正在开发一个项目QR扫描仪应用程序使用Zxing扫描仪库,我想输入扫描数据到一个ListView。所以我想在扫描项目后将ItemName和ItemPrice输入到ListView中。为了区分itemName和itemPrice与扫描器结果(纯文本),我使用了string tokenizer类,然后可以分别获得itemName和Price。 解决方案应该是,当用户扫描一个项目时,它应该在列表视图中
但是,当我试图将此代码更改为以下代码时,我得到了一个错误-错误:Main method,在类MyClass中找不到,请将Main method,定义为:public static void Main(string[]args)。我需要接收owner和consumerName作为我的程序的参数/输入。 ,这是怎么做到的?
问题内容: 我正在使用shell_exec方法从PHP调用test.sh。 但是,命令行脚本说它仅收到1个参数:/tmp/my_script.php 当我将呼叫更改为: 码: 它说它收到了3个参数,但是argv [1]和argv [2]为空。 当我将呼叫更改为: 码: 脚本最终将按预期接收所有3个参数。 您是否始终需要使用脚本发送仅带引号的文本,并且不允许发送$ var这样的变量?还是有一些特殊的
问题内容: 我有这个站点,它的页面之一从数据库中创建了一个简单的人员列表。我需要将一个特定的人添加到我可以访问的变量中。 如何修改该行以将$ ms变量也传递给视图? 问题答案: 只需将其作为数组传递: 或将它们链接起来,就像@Antonio提到的那样。