【发布时间】:2018-01-30 18:07:36
【问题描述】:
我在早上的大部分时间里一直在互联网上挖掘,包括 Stack,试图弄清楚如何创建一个参数,然后设置它的值并将它传递到我的 Oracle SQL 中 where 子句中的各个位置.我似乎找不到我想要的东西。很有可能我没有正确地问这个问题,所以如果这是一个多余的问题,我深表歉意(看起来很可能是这样)。
这是我在 Oracle SQL Developer 中运行的 SQL:
SELECT t.mta_tenure_sub_type_code , t.mta_tenure_type_code , COUNT(t.tenure_number_id), SUM(t.area_in_hectares)
FROM MTA_TENURE t
WHERE
t.mta_tenure_type_code in ('M','P') AND
to_char(t.issue_date, 'YYYY') <= '&year' AND
(
to_char(t.termination_date, 'YYYY') > '&year' OR
t.termination_date IS NULL OR
t.mta_termination_type_code = 'PROT'
)
GROUP BY t.mta_tenure_sub_type_code, t.mta_tenure_type_code;
如您所见,我的查询中有两次“&year”,每次出现该变量时都会提示用户输入一个值。每个变量的值总是相同的年份(即每次弹出提示时,用户总是会输入相同的年份两次) 作为一个 python 程序员,我曾认为我可以通过设置使这个查询更有效'&year' 的参数,因此用户只需输入一次,该参数会将值传递给 where 子句。这甚至可能吗?我真的认为这将是一个简单的谷歌搜索,但也许我微弱的大脑忽略了一些东西。谢谢。
【问题讨论】:
-
docs.oracle.com/cd/B28359_01/appdev.111/b28843/… 使用一个输入参数创建一个过程,然后使用输入值代替年份。然后执行程序。
-
我相信 sqlplus
&&只提示一次相同的变量,而&每次都提示。
标签: sql oracle variables parameter-passing oracle-sqldeveloper