【问题标题】:plpgsql, variable inside query in functionplpgsql,函数中查询内部的变量
【发布时间】:2015-11-25 02:09:18
【问题描述】:

我是 plpgsql 的新手。我创建新功能

CREATE OR REPLACE FUNCTION createObj(number integer)
RETURNS INTEGER AS
$$
BEGIN

END;
$$

我有一个问题,如果我想在函数体中进行查询并在查询中使用数字变量,而在表中它们是数字,布尔值始终为真。

类似:

 Select * from objects O, where O.number=number...

所以 number 不是函数的编号而是表中的字段。 他们是一种实现这一点并且不更改变量名的方法?

【问题讨论】:

    标签: sql database postgresql plpgsql


    【解决方案1】:

    使用前缀定义参数以将它们与列区分开来:

    CREATE OR REPLACE FUNCTION createObj(in_number integer)
    RETURNS INTEGER AS
    $$
    BEGIN
        Select * from
        objects O
        where O.number = in_number...
    END;
    
    $$
    

    【讨论】:

    • 谢谢,我认为他们是获取原始变量的一种方式。无论如何,谢谢。
    • @Alon 。 . .您可以使用$1。我认为使用不能与其他东西混淆的参数和变量名称只是一个好习惯。
    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多