sql - 在 PLSQL 中声明一个常量
问题描述
我在声明常量并在简单查询中使用它时遇到问题。
我已经尝试了许多在 PLSQL 中声明常量的变体,我在网上看到过,但我不断收到错误。我究竟做错了什么?
DECLARE
cobdate CONSTANT NUMBER(10) := 420181109;
BEGIN
SELECT *
FROM THIS_TABLE dex
WHERE dex.close_of_business_key = &cobdate
AND dex.scenario_type_id = 'xxxx'
AND dex.s_counterparty_id = 'xxxx'
AND dex.run_type = 'xxxx'
AND dex.s_credit_line_type_id = 'xxxx'
END;
解决方案
您不应该将其&
用作常量名称的前缀。
DECLARE
cobdate CONSTANT NUMBER(10) := 420181109;
v_this_table this_table%rowtype;
BEGIN
SELECT * into v_this_table
FROM THIS_TABLE dex
WHERE dex.close_of_business_key = cobdate
AND dex.scenario_type_id = 'xxxx'
AND dex.s_counterparty_id = 'xxxx'
AND dex.run_type = 'xxxx'
AND dex.s_credit_line_type_id = 'xxxx'
END;
此外,在 PL/SQL 中,您需要指定将结果集值存储在哪里(在我的示例中v_this_table
)。
如果您的查询返回不止一行,您将需要一个游标来迭代它。
推荐阅读
- android-studio - Android Studio,Github 登录问题,凭据不正确
- vue.js - 如何显示值也是数组的对象数组
- docker - Docker 项目容器 nginx conf 引用完全不同的项目。在 mac 上运行(这真的很奇怪!)
- react-hooks - 当其中包含“document.addEventListener”时,如何测试 useEffect React 挂钩?
- android - 在 build.gradle 文件的 externalNativeBuild 中指定目标-> 没有方法签名
- python - 如何以这种格式将字典信息写入文本文件?(Python)
- selenium - 带有 clj-webdriver 和 chromedriver 的 Selenium 3.141.59 在未从 Guava 中找到的方法上失败
- java - 我可以使用 indexOf() 在 for 循环中返回两个不同的值吗?
- c++ - c++ 检查数组是否等于未创建的数组
- java - 您如何在所有活动中使用工具栏