gpt4 book ai didi

sql - 如何在 oracle 数据库中编写参数化查询

转载 作者:行者123 更新时间:2023-11-28 21:01:56 24 4
gpt4 key购买 nike

我有一个基本要求,我需要使用相同的参数多次查询数据库即

Select * from Table1 where ID1 in (1,2,3,4,5) ;
Select * from Table2 where ID2 in (1,2,3,4,5) ;
Select * from Table3 where ID3 in (1,2,3,4,5) ;
Select * from Table4 where ID4 in (1,2,3,4,5) ;
Select * from Table5 where ID5 in (1,2,3,4,5) ;

在这里我想要一些东西,我可以在其中声明变量并分配值 1、2、3、4、5 而不是再次更改值,只需要更改变量值。

有点像..

Select * from Table1 where ID1 in (x,y,z,a,b);

它可能会为您提出一个非常基本的问题,但可以节省我的大量返工。

最佳答案

在 SQL*Developer 中,将它们写成绑定(bind)变量,像这样(例如):

SELECT count(*) FROM dba_objects WHERE rownum <= :v1;

SELECT count(*) FROM dba_tab_columns WHERE rownum <= :v1;

在您的特定情况下,它可能是:

Select * from Table1 where ID1 in (:x,:y,:z,:a,:b); 

SQL*Developer 将看到冒号并识别绑定(bind)变量并提示您输入值。

它会在下次看到该值时记住它,即使是在不同的查询中也是如此。每次它仍然会提示你,但你最后使用的值会被填入。

如果你想以编程方式指定变量值,你可以使用这个:

VARIABLE var1 NUMBER;

exec :var1 := 15;

SELECT count(*) FROM dba_objects WHERE rownum <= :var1;

SELECT count(*) FROM dba_views WHERE rownum <= :var1;

...但是您需要在 SQL*Developer 中将其作为脚本运行(F5 键)。

关于sql - 如何在 oracle 数据库中编写参数化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51792288/

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