plpgsql相关内容
是否可以创建"DIRECTORY" 对象在 Postgres 中? 如果没有可以帮助我解决如何在 PostgreSQL 上实现它. 解决方案 Postgres 中没有与“Oracle 目录"等效的概念. 替代方案取决于为什么需要“Oracle 目录". 如果需要目录在数据库服务器上读写文件,那么可以通过通用文件访问函数.对这些功能的访问仅限于超级用户(详细信息在手册的链接
..
我试图在存储过程中设置自定义选项,但它存储的是变量名而不是变量的内容. CREATE OR REPLACE FUNCTION set_user(_user_id bigint, is_local boolean default true) 返回 void AS $$开始将 my.user_id 设置为 _user_id;结尾;$$ 语言PLPGSQL;选择 set_user(1);选择 curr
..
升级 Postgres 8.4 后 ->9.3 和 Ruby 1.8 ->2.1、PL/ruby运行失败.在第一次执行任何 PL/ruby 函数时,我会立即获得 Postgres 服务器核心转储.我正在分析堆栈跟踪,但它看起来不太好.另外PL/ruby的维护状态也不好. 因此,将重点转移到我使用 PL/ruby 解决的实际数据库问题上,并考虑替代方案. 问题的简化示例:给定一个仓库日志
..
我在 postgresql 中有一个示例函数,它引发了一个通知. 示例函数- 创建或替换函数 raise_test() 返回文本为$body$宣布retStr 文本;开始SELECT current_timestamp 到 retStr;提高通知 '%', retStr ;返回 retStr;结尾;$body$语言 plpgsql; 有什么办法可以更新上面的函数,让整个通知保存到一个文件
..
我有一个旧的 MSSQL 过程需要移植到 PostgreSQL 函数.基本上,SQL 过程包含在选择语句上的 CURSOR 中.对于每个游标实体,我有三个基于当前游标输出的选择语句. FETCH NEXT FROM @cursor INTO @entityId而@@FETCH_STATUS = 0开始SELECT * FROM table1 WHERE col1 = @entityIdSELEC
..
我有一个函数,我希望能够在 Postgres 函数中使用文本变量作为字段名称. DECLARE_currentEmployee 文本;_myCount 整数;开始FOR _记录输入选择 ...环形_currentEmployee = _record.name_myCount = (SELECT count(*) FROM tblTraining哪里 tblTraining._currentEmp
..
我知道之前有人问过这个问题的变体: 为什么不能将 NULL 转换为 JSON在 postgreSQL 中为 null? 为什么 JSON null 不强制转换为postgres 中的 SQL null? 也许其他人... 我无法从上述链接中了解到是否有最佳实践. 考虑以下代码: 做$$宣布_main_jsonb jsonb = '{“i_am_null":null,“a_s
..
PostgreSQL 9.6 版,使用 xml2 扩展.我试图从 XML 中提取行并将它们插入到 postgreSQL 表中.下面是一个简短的例子: 回滚;开始;做$$宣布v_xml xml;v_record 记录;开始v_xml := '123
..
我正在使用 Postgres 和 PostGIS.尝试编写一个根据给定参数选择特定列的函数. 我正在使用 WITH 语句创建结果表,然后将其转换为 bytea 返回. 我需要帮助的部分是 $4 部分.我尝试在下面演示和 $4::text 并且都给我返回输入的文本值而不是表中的列值如果 cols=name 所以我从查询名称而不是表中的实际名称返回.我也尝试了 data($4) 并得到了类型错
..
背景 我是 PostgreSQL 的新手,我在使用这个触发器函数时遇到了一些问题,我在下面显然已经大大简化了.我可以要求帮助修复查询,但我认为我可以处理这个问题,我更关心的是我有很多这样的功能,我需要一种方法来了解它失败的原因,哪些失败了. 问题 我怎样才能捕获在这个函数中发生的异常并将它们写入某种日志表,以便我可以查看和修复每个异常?理想情况下,我也想将失败的 sql 语句写入
..
我需要在 Postgres 中设置一个约束,它只会在 INSERT 查询上触发(而不是在 UPDATE 查询上). 目前它是这样实现的: ALTER TABLE test ADD CONSTRAINT check_something_const检查(check_something(id,task_id))无效; 哪里check_something CREATE OR REPLACE F
..
我有以下表格: 创建表格元素(element_id 串行主键,local_id 整数,名称 varchar,约束 fk_element_local_id 外键 (local_id)参考本地(local_id)匹配简单更新时无操作 删除时无操作);创建表本地(local_id 串行主键,parent_id 整数,名称 varchar,约束 fk_local_parent_id_local_id 外
..
我有一个重新调整复合结果的 SQL 函数. CREATE TYPE result_t AS (a int, b int, c int, d numeric);创建或替换函数 slow_function(int)返回 result_t作为 $$-- 只是一些占位符代码,让它变慢选择 0, 0, 0, (SELECT sum(ln(i::numeric))FROM generate_series(1
..
我有一个表,其中包含有关我的数据库中不同表的信息.对于其中的每个表,我希望进行定期日志记录(每天).问题是我已经使用 for 循环完成了此操作,并且在 Redshift 中执行需要花费大量时间.我提供了用于创建表、日志记录表和使用 for 循环的程序的查询.请提出一种替代方法来实现这一点,而无需 for 循环.包含不同表信息的表结构: CREATE TABLE public.info_schem
..
我已经查看了与我的主题相匹配的其他问题,但在我的情况下,我认为歧义来自与列同名的变量. 这是我尝试创建的函数的简化版本: CREATE OR REPLACE FUNCTION get_user_id(username TEXT)以 $$ 形式返回整数宣布user_id BIGINT;其他参数文本;开始SELECT INTO user_id user_id FROM users WHERE
..
我在 UDF 中有一个查询(如下所示),其中 unnest() 是一个整数数组并对其进行连接,因为我知道这一点,所以我在 pgplsql UDF 中创建了一个本地临时表作品.是否可以直接在查询中使用 unnest 来执行连接,而不必创建临时表? 创建或替换函数 search_posts(forum_id_ 整数,查询_字符变化,偏移_整数默认为空,限制_整数默认为空,from_date_ TIM
..
我想从 plpgsql 函数返回表. 这是我的代码. CREATE FUNCTION test() 返回 my_table AS$BODY$声明q4 my_table;开始q4 := SELECT * FROM my_table;返回 q4;结束;$BODY$语言sql; 我收到以下错误: 错误:错误:“SELECT"处或附近的语法错误第 5 行:q4 := SELECT * FR
..
我想通过 psql 命令行将参数传递给匿名 PL/pgSQL 块,然后在条件中检查该参数. SQL 的相关部分在这里: 做$$开始如果 (':para' = 1) 那么——陈述;万一;结束 $$; 我这样称呼这个脚本: psql -d dbname -v para=1
..
我的 SQL 脚本包含以下内容: \set test 'some value'做 $$DECLAREv_test text:= :'test';开始RAISE NOTICE 'test var is %',v_test;结束$$; 在尝试评估 test 的值时出现语法错误: 错误:“:"处或附近的语法错误 理想情况下,我希望有一个匿名 plpqsql 块存在于一个文件中,然后使用一组环境变
..
我正在尝试遍历几个字段并对它们运行一个函数: FOR 字段 IN ARRAY['f1','f2'] LOOP执行 pg_temp.converFieldToLower(newTableNameRaw,field)结束循环; 这是我尝试使用的功能: 创建或替换函数 pg_temp.converFieldToLower(t varchar, f varchar) RETURNS void AS
..