oracle-apex - ORA-01756: 字符串中缺少引号
- 顶点、甲骨文、PL/SQL问题描述
现在我几乎在 APEX 中完成了我的 PL/SQL 代码。从昨天开始我就一直犯错误。
While X < l_date_diff+1 Loop
l_date_string := l_date_string ||''','''||to_char(TO_DATE(:P2066_DATE_FROM, 'dd.mm.yyyy')+X,'dd.mm.yyyy') ;
X := X + 1;
End Loop;
l_date_string := substr(l_date_string,3)|| chr(39);
l_script := 'Select * from
(Select
pkey,
to_char(createdformat,''dd.mm.yyyy'') business_date,
regexp_substr(statistics, ''business_\w*'') business_statistics
from
gss.business_data
where
statistics like ''%business_%''
and createdformat between :P2066_DATE_FROM and :P2066_DATE_UNTIL
) ';
l_script_pivot := l_script || ' pivot(
count(pkey)
for business_date
in ('||l_date_string||')
)';
我逐步构建了代码,因此我可以准确定义错误发生的位置。
返回“返回”时,我现在收到错误:ORA-20999:解析返回的查询结果为“ORA-20999:无法解析 SQL 查询。
ORA-06550:第 18 行,第 6 列:ORA-01756:字符串中缺少引号
”。如果我只返回第一部分而不是 l_script_pivot,即 l_script 并查看 l_script_pivot 的值,代码看起来是正确的。我什至可以在 SQL 中输入它并得到结果。某处我在复合字符串 l_script_pivot 中遗漏了一个撇号
解决方案
while X < l_date_diff+1
Loop
l_date_string := l_date_string||','||to_char(TO_DATE(:P2066_DATE_FROM,'dd.mm.yyyy')+X,'dd.mm.yyyy') ;
X := X + 1;
End Loop;
l_script := 'Select * from
(Select
pkey,
to_char(createdformat,"dd.mm.yyyy") business_date,
regexp_substr(statistics, "business_\w*") business_statistics
from
gss.business_data
where
statistics like "%business_%"
and createdformat between :P2066_DATE_FROM and :P2066_DATE_UNTIL
) ';
l_script_pivot := l_script || ' pivot(
count(pkey) for business_date in (l_date_string)
)';
推荐阅读
- javascript - 我尝试在 heroku 上部署 NodeJS 应用程序,但无法从外部路由器发出请求
- firebase - Flutter:来自 Firestore 的项目在刷新之前未显示在 GridView 中
- python - 在pygame中动画精灵的问题
- cookies - 使用 lua 从网站获取 cookie [不是特定的 cookie / 原始代码]
- google-calendar-api - 在什么情况下,iCal VEVENT 最终会出现重复的 UID?
- android - 如何在我的 java 代码中获取这个嵌套字段值?
- r - 错误:必须使用有效的下标向量对列进行子集化。x 无法从
至 由于精度损失 - reactjs - 出现错误:“当提供 '--isolatedModules' 标志时,所有文件都必须是模块”在 React with TypeScript 中
- image - 镜像拉取多个 K8s 节点
- python - 用 Pandas Matplotlib 绘制日期 - 随机(显然)年份