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

时间:2012-08-10 03:57:56

标签: postgresql plpgsql

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

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

错误:

  

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

1 个答案:

答案 0 :(得分:9)

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

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

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