提示: 如果想在PL/pgSQL 函数里以一个查询结果为基础建表,应该用CREATE TABLE ... AS SELECT命令,不要用 SELECT INTO命令。 如果target是数据行变量或简单变量的列表,查询结果的列的数据类型必须与target的数据类型完全相同,否则系统会报错。如果target是记录类型的变量,它可以接受任何类型的查询结果。 INTO子句可以...
否则将会导致运行时错误,见如下示例: \2. SELECT INTO: 通过该语句可以为记录变量或行类型变量进行赋...
pg select中使用变量 DO $$ DECLARE myvar int8; BEGIN --SELECT 168038292783239160 INTO myvar; myvar=168038292783239168; DROP TABLE IF EXISTS tmp_table; CREATE TABLE tmp_table AS select * from ess_storehouseini es where s_storages_id= myvar; END $$; SELECT * FROM tmp_table; 好文要顶 ...
在Pgsql中,可以使用DECLARE关键字来声明变量。变量声明的语法如下: DECLARE variable_name data_type; 复制代码 例如,声明一个整型变量可以这样写: DECLARE my_variable INT; 复制代码 变量声明后,可以通过SELECT INTO语句将值赋给变量,例如: SELECT column_name INTO my_variable FROM table_name WHERE condition; ...
SELECT...INTO 语法赋值 语法: SELECT select_expressisons INTO target FROM ...; SELECT INTO target select_expressisons FROM ...; SELECT select_expressisons FROM ... INTO target ; 其中,变量target可以为基本数据变量、行变量与记录变量。
直接看例子 droptableifexiststest;createtabletest(idint, namevarchar);insertintotestselectn, n||'name'fromgenerate_series(1,10)ast(n);CREATEORREPLACEFUNCTIONfunc_test()RETURNSINTEGERAS$BODY$DECLAREtmp_namevarchar;BEGINselectnameintotmp_namefromtestwhereid<10; ...
SELECT INTO 语句用于将查询结果存入变量中。这是在 PL/pgSQL 中常用的语法,目的是将查询结果赋值给某个变量(即将结果存储到内存中的一个变量)。这种用法不创建新表,而是用于函数或存储过程中处理数据。 DECLAREresultINTEGER;BEGINSELECTCOUNT(*)INTOresultFROMemployees;RAISENOTICE'Number of employees: %',result;...
DECLARE variable_col int := (SELECT oid FROM pg_class WHERE relname='tablename'); SELECT * FROM pg_class WHERE oid=variable_col; 手头没 pg 库,没执行,大概意思理解一下。 P.S. variable_col 是变量名,我瞎起的;int 记得改成你那个 oid 的数据类型。 有用1 回复 Ocean: 你这个declare的用法...
尽管Erwin提供了一个很好的答案,但我想我应该共享一个函数接受params的版本,并且在函数的主体中使用新的...