ColdFusion CFQuery块按照postgres

时间:2013-01-09 13:50:13

标签: postgresql coldfusion coldfusion-9 postgresql-9.1

我无法让这个代码块在ColdFusion的CFQuery中对postgres运行我的查询:

<cfquery name="uiCustomColumn" datasource="#arguments.dsn#">
    DECLARE resultValue int;
    DECLARE nextId bigint;
    BEGIN
        IF (( select count( udc_id ) from user_defined_column WHERE udc_is_active = true ) >= 10) THEN
            INSERT INTO user_defined_column(udc_id)
            VALUES(<cfqueryparam value="#this.getLabel()#" cfsqltype="cf_sql_varchar" maxlength="25">)
        END IF;
    END;
</cfquery>

1 个答案:

答案 0 :(得分:2)

你所拥有的是plpgsql语法(默认的PostgreSQL过程语言),而不是SQL。

您需要将其包含在DO命令或CREATE FUNCTION中 或者用SQL语法重写它。这些方面的东西:

INSERT INTO user_defined_column(udc_id)
SELECT <this.getLabel()>
WHERE (
   SELECT count(udc_id) > 9
   FROM   user_defined_column
   WHERE  udc_is_active
   )