gpt4 book ai didi

sql - Oracle:选择在where子句中使用的变量

转载 作者:行者123 更新时间:2023-12-04 06:50:24 25 4
gpt4 key购买 nike

我可以使用 select into 更改变量的值吗?将变量的原始值作为 select 语句中 where 子句的一部分?

EI 将以下代码按预期工作:

declare
v_id number;
v_table number; --set elsewhere in code to either 1 or 2
begin
select id into v_id from table_1 where name = 'John Smith';
if(v_table = 2) then
select id into v_id from table_2 where fk_id = v_id;
end if;
end;

最佳答案

应该管用。你试过了吗?有什么问题吗?

解析您的选择语句后,您的 v_id 应该有绑定(bind)变量。实际执行语句时进行替换。

编辑:
除非您在查询中添加常量,否则 Oracle 将始终将它们解析为带有绑定(bind)变量的语句 - 它使 DBMS 能够重用具有多个值的相同基本查询,而无需重新解析语句 - 巨大的性能提升。绑定(bind)变量的整个想法是将值在运行时替换为已解析的查询。可以这样想:为了处理查询,需要知道所有值。您将它们发送到引擎,Oracle 完成它的工作并返回结果。这是一个串行过程,输出值无法超越输入值。

关于sql - Oracle:选择在where子句中使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com