我想获取特定的列值a.id并将其存储到变量v_id中。然后使用此值传递到存储过程。
DECLARE v_id a.id%TYPE;
BEGIN
SELECT id into v_id from a where a.name='test' and rownum <2 order by id desc;
Print v_id;
doSomething(v_id);
END;
/
我在Oracle SQL Developer中收到此错误:
错误报告:ORA-06550:第3行,第7列:PLS-00103:遇到以下情况之一时遇到了符号“ V_ID”:
:=。(@%;用符号“:=”代替“ V_ID”才能继续。06550. 00000-“行%s,列%s:\ n%s” *原因:通常是PL /
SQL编译错误。 :
如果你想使用rownum
和order by
您 必须 在一个子查询放的顺序。没有其他方法可以保证您获得正确的价值。
可能不会存在id
与您的查询相匹配的可能性也是一种很好的做法。我添加了一个额外的begin... end;
块来处理这个问题。
declare
v_id a.id%type;
begin
begin
select id into v_id
from ( select id
from a
where name = 'test'
order by id desc )
where rownum < 2
;
exception when no_data_found then
v_id := null;
end;
dbms_output.put_line(v_id);
doSomething(v_id);
end;
/
正如@raukh指出的(虽然我正在写这篇文章!)问题是print
,应该是dbms_output.put_line()
问题内容: 因此,我正在编写此存储过程,而且我真的很喜欢SQL。 我对你们的问题是: 我可以选择整行并将其存储在变量中吗? 我知道我可以做类似的事情: 但是我可以从中选择整行并将其存储在变量中吗? 问题答案: 您可以将字段选择为多个变量: 另一种可能更好的方法是使用表变量: 然后,您可以像常规表一样从表变量中进行选择。
问题内容: 是否可以在一列中选择2列并合并它们? 例子: 问题答案: 是的,就像您所做的那样: 如果查询数据库,您将得到正确的答案。 发生的事情是您要求表达。一个非常简单的表达式只是一个列名,一个更复杂的表达式中可以包含公式等。
因此,为了测试我的搜索结果是否因我输入的关键字而异,我想在键入关键字之前存储搜索结果的节点列表,然后将它们与添加关键字后得到的搜索结果的节点列表进行比较,但我无法使其起作用。 我试过: 然而,这并没有给我一个节点。我还试图使用一个带有的clientFunction,但是TestCafe然后告诉我使用Selector。 要怎么做?有没有更好的方法来测试这个,我没看到?
问题内容: 我可以在MySQL的同一选择查询中将多个列选择到多个变量中吗? 例如: 正确的语法是什么? 问题答案: 您的语法不太正确:您需要按顺序在INTO之前列出字段,并在以下列出相应的目标变量:
本文向大家介绍将列的值存储到MySQL存储过程的变量中,包括了将列的值存储到MySQL存储过程的变量中的使用技巧和注意事项,需要的朋友参考一下 要声明变量,请在MySQL存储过程中使用DECLARE。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是创建存储过程并将上述表的列值存储在存储过程变量中的查询- 调用存储过程- 这
我正在做一个项目,我想要一个功能,在WhatsApp上给我们留言,为此,我使用了使用intent的WhatsApp API。在“WhatsApp上向我们发送消息”功能中,我使用了2-3个不同的数字,并将其存储在列表中,并使用random()方法从列表中检索该数字,正如我所希望的那样,每当用户使用该功能时,他/她每次都必须连接不同的数字。但现在我想更改列表中存储的数字。 那么,我如何在每次不改变实际