sql - SQL/PostgreSQL - 在存储过程中的“异常”块未捕获的查询中观察到错误
问题描述
我正在尝试创建一个要在 PostgreSQL DBMS 中使用的存储过程。
此存储过程的目的是删除所有出现以下问题的记录...
询问:
my_database=# SELECT file INTO my_file_now FROM public.my_datatable WHERE my_id='2fdf5297-8d4a-38bc-bb26-b8a4b7ba47ec';
ERROR: missing chunk number 0 for toast value 3483039 in pg_toast_3473493
基于上述行为,我创建了以下存储过程:
存储过程:
DO $f$
DECLARE
my_file_now BYTEA;
my_id_now UUID;
BEGIN
FOR my_id_now IN SELECT my_id FROM public.my_datatable LOOP
BEGIN
SELECT file
INTO my_file_now
FROM public.my_datatable WHERE my_id=my_id_now;
EXCEPTION
WHEN OTHERS THEN
RAISE NOTICE 'CORRUPTED MY_ID - % ', my_id_now;
DELETE FROM public.my_datatable WHERE my_id=my_id_now;
END;
END LOOP;
END;
$f$;
问题:为什么查询中观察到的错误没有被存储过程中的“EXCEPTION”块捕获?
谢谢!=D
解决方案
我认为错误被异常块捕获。
您观察到的错误来自DELETE
异常处理程序中的语句。
推荐阅读
- angular - 如何在 Angularfirelist 中获取节点的密钥
来自 Firebase 实时数据库 - java - 通用实现类的工厂方法
- javascript - 传递参数作为 vue 事件中的引用 (@input)
- python-3.x - Python程序在for循环完成后停止,里面有输入
- f# - 如何避免 F# Seq.map 中的自动排序
- python - 如何在 Linux 命令行中从 artifactory 获取 MD5 校验和
- python - 在我的 django 应用程序中出现错误“ModuleNotFoundError: No module named 'django.wsgi'”。我有这个错误。我无法修复它
- botframework - 如何使用 botbuilder v4 nodejs 向所有团队用户发送主动消息
- php - AMP:是否可以始终使用 amp-user-notification 显示通知?
- java - 如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast