我具有以下Oracle SQL语法:
select effective_date
from table
where effective_date >= to_date(:processingDate, 'yyyymmdd')
我的错误是
'processingDate'未声明。
问题:这个标记“:”是什么意思?我需要指定什么是“ processingDate”吗?如果可以,怎么办?
谢谢!
答案 0 :(得分:2)
这可能是一个变量(varchar(8)
,nvarchar(8)
,char(8)
或nchar(8)
中的任何一个,因为您将其匹配为8个字符的固定日期格式)。
某些系统在名称前使用:
来表示变量名。有些使用?
。其他人则使用@
。其他人根本不需要任何主角。
要知道什么适合您的数据库,我们需要知道您正在使用哪种数据库。 to_date()
将其范围缩小到Oracle或Postgresql,但这还不够,因为我也看到了报告工具,无论最终的数据库平台如何,它们都在变量名之前使用:
。
但是您可能不想只为变量添加DECLARE
语句。除非变量已经具有有意义的值,否则变量本身在这里没有帮助。您需要找出该值的来源,并确保已设置系统以正确提供它。
答案 1 :(得分:1)
如果要在sql * plus或任何工具中单独执行查询,则可以定义此变量并使用curl "http://localhost:5000/project-name/us-central1/runMyFunction?someDocumentId=some-someDocumentId-hash&anotherDocumentId=some-anotherDocumentId-hash"
变量来使用。 Error: HTTP Error: 400, Request contains an invalid argument.
用于oracle中的绑定变量。
替换变量使用substitution
声明。
所以您的案子可以这样:
:
干杯!