11

使用以下代码行出现以下错误:

RAISE NOTICE '*** Rolling back job run id ' || CONVERT(varchar, v_job_run_id)
             || ' for table ' || v_table_name || '***';

错误:

错误:“|”处或附近的语法错误 LINE 43: RAISE NOTICE ' *
回滚作业运行 id ' || 转换(变量...

4

1 回答 1

17

RAISE XXXX 语句中的消息字符串应该是文字常量 - 在那里不允许表达。它类似于 printf 函数中的格式字符串。

RAISE NOTICE 'my table has name %', tablename;

第二个问题应该是“CONVERT”,在 Pg 中不支持 - 使用CAST代替或不使用任何参数,RAISE 语句的任何参数都会自动转换为文本。

于 2012-08-10T04:21:07.917 回答