人大金仓数据库KingbaseES call、select和perform的区别

97 阅读3分钟

关键字:

SQL、CALL、SELECT、PERFORM、人大金仓、KingbaseES

PERFROM

PERFORM是一个用于执行 SQL 查询的内部命令。它主要用于执行一个查询并丢弃结果,而不是将结果返回给客户端。 PERFORM`命令可以用于在 PL/SQL 函数或存储过程中执行查询,以及在触发器中执行查询。

PERFORM的语法如下:

PERFORM query;

其中,query 是要执行的 SQL 查询。以下是一个使用 PERFORM执行查询的示例:

CREATE OR REPLACE FUNCTION my_function()

RETURNS VOID AS $$

BEGIN

PERFORM * FROM table_name;

END;

$$ LANGUAGE plpgsql;

在上面的示例中,定义了一个名为 my_function的 PL/SQL 函数,其中使用 PERFORM`命令执行了一个查询。查询语句 SELECT * FROM table_name;返回的结果将被丢弃,不会返回给客户端。

PERFORM`命令通常用于在函数或触发器中执行查询,以验证查询是否返回了所期望的结果,或者用于执行一些与结果无关的操作(如插入、更新或删除数据)。要注意,PERFORM命令不会返回查询结果,因此不适合用于需要获取查询结果的情况。如果需要获取查询结果,请使用适当的 SQL 命令(如 SELECT)并将结果返回给客户端。

CALL

CALL 语句用于调用存储过程(stored procedure)或函数(function)。存储过程和函数是预先定义的一组 SQL 语句,可以在需要时通过调用来执行。

以下是 CALL语句的基本语法:

CALL procedure_name(arguments);

在上面的语法中,procedure_name是要调用的存储过程或函数的名称。arguments是传递给存储过程或函数的参数列表。

以下是一个示例,演示如何使用 CALL语句调用一个名为get_customer_details的存储过程,并传递一个参数:

CALL get_customer_details(123);

上面的示例调用了名为 get_customer_details的存储过程,并将参数值123传递给它。

使用CALL语句调用存储过程或函数时,可以获取函数的返回值。但是使用CALL获取返回值时,需要将返回值赋值给一个变量,并通过INTO子句指定变量。然后,可以通过SELECT语句查询该变量来获取函数的返回值。

call 和 select 和 perform有什么区别

CALL、SELECT 和 PERFORM是用于执行不同类型操作的 SQL 语句。

  1. CALL语句用于调用存储过程或函数。它用于执行预先定义的一组 SQL 语句,可以传递参数并获取返回值。

  2. SELECT语句用于从一个或多个表中检索数据。它可以用来查询数据、过滤数据、排序数据等。SELECT语句可以返回结果集,你可以使用它来获取查询的结果。

  3. PERFORM语句用于执行一个 SQL 查询,但不返回结果。它通常用于执行一些没有返回结果的操作,例如插入、更新或删除数据,或者执行一些存储过程或函数,而不需要获取返回值。

所以,CALL主要用于调用存储过程或函数,并可以传递参数和获取返回值;SELECT主要用于从表中检索数据,并返回结果集;PERFORM用于执行一个 SQL 查询,但不返回结果。需要注意的是,CALL和PERFORM在PostgreSQL 中是可选的语法,可以使用 SELECT语句来调用存储过程或函数,或者执行一些没有返回结果的操作。