使用||在RAISE NOTICE上抛出错误的PostgreSQL错误 操作者

mle*_*vit 8 postgresql plpgsql

使用以下代码行获得以下错误:

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

错误:

错误:"|"处或附近的语法错误 第43行:提高通知' *
回滚作业运行ID'|| CONVERT(VAR ...

Pav*_*ule 10

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

RAISE NOTICE 'my table has name %', tablename;
Run Code Online (Sandbox Code Playgroud)

第二个问题应该是"CONVERT",Pg不支持 - 使用CAST而不是任何内容,RAISE语句的任何参数都会自动转换为文本.

  • 或换句话说使用'RAISE NOTICE'%','yada'|| '达达';` (4认同)