gpt4 book ai didi

oracle - 在 SQL Developer 中使用变量作为参数的简单查询

转载 作者:行者123 更新时间:2023-12-02 19:45:30 24 4
gpt4 key购买 nike

好吧,我看到很多问题试图回答这个问题,但所有答案似乎都非常复杂,或者实际上并没有回答问题。

有没有办法简单地做这样的事情:

DECLARE
v_some_variable VARCHAR2(10) := 'Find Me';
BEGIN
select column1, column2, column3
from someTable st
where st.columnTarget = v_some_variable
END;

并将其显示在网格中吗?

这在 SQL Server 上是如此简单,但在 Oracle 中却极其不简单。

我从各种答案中尝试的每个排列或组合要么不起作用并给出错误,需要在运行查询之前定义输出中的每一列和数据类型,要么不输出到网格,并且您必须滚动自己的文本输出。在我看来,所有这些都是非常糟糕的解决方案。我缺少什么? Oracle 不会这么糟糕吧?

最佳答案

arguably possible to print query output from PL/SQL by returning a refcursor or printing it or something 。尽管和您一样,我认为这些解决方案都不是非常简单或直观。

我在 Oracle 中进行了大量 SQL 开发,通常 - 如果您想返回结果网格,请不要使用 PL/SQL block 。只需使用简单的 SQL 语句即可。

select column1, column2, column3
from someTable st
where st.columnTarget = :v_some_variable; -- when you run this, it'll prompt for the value

如果您不喜欢弹出提示,you can also declare bind variables in SQL*Plus (SQL Developer 背后的后端)如下所示:

var v_some_variable VARCHAR2(10)
exec :v_some_variable := 'Find Me';

select column1, column2, column3
from someTable st
where st.columnTarget = :v_some_variable;

如果您将其作为脚本运行 (F5),它不会提示您输入值。请注意,这仍然没有使用 PL/SQL block 。

关于oracle - 在 SQL Developer 中使用变量作为参数的简单查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59363216/

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