小编BGC*_*CDC的帖子

Postgresql 9.6 尝试让函数返回字符串而不先将其转换为字符串时出错。

我正在学习 PostgreSQL (9.6) 并且对我收到的错误有点困惑。如果我尝试创建以下函数 II 会收到以下错误。

create or replace FUNCTION HelloWorld ()
RETURNS TABLE(HelloCol text, WorldCol text) AS $$

SELECT 'Hello' , 'World' ;
$$
 LANGUAGE sql;
Run Code Online (Sandbox Code Playgroud)

错误:

    ERROR:  return type mismatch in function declared to return record
DETAIL:  Final statement returns unknown instead of text at column 1.
CONTEXT:  SQL function "helloworld"
SQL state: 42P13
Run Code Online (Sandbox Code Playgroud)

如果我将文本转换为文本,它可以正常工作。

create or replace FUNCTION HelloWorld ()
RETURNS TABLE(HelloCol text, WorldCol text) AS $$

SELECT cast('Hello' as text) , cast('World' as Text);
$$
 LANGUAGE …
Run Code Online (Sandbox Code Playgroud)

postgresql datatypes functions postgresql-9.6

5
推荐指数
1
解决办法
2180
查看次数

对具有连续开始日期和结束日期的记录进行分组 -Postgresql

我们正在迁移到新的记录管理系统,我正在解决数据迁移的问题。源数据和目标数据都在Postgresql中

在源数据库中,对于同一供应商的每个授权代码以及该授权的开始和结束日期,我们有多个行。

+----------+---------------+------------+-----------+
|  Vendor  | Authorization | Start Date | End Date  | 
+----------+---------------+------------+-----------+
| Vendor 1 | #####         | 1/1/2017   | 2/28/2017 | 
| Vendor 1 | #####         | 3/1/2017   | 4/15/2017 |
| Vendor 2 | #####         | 4/16/2017  | 5/31/2017 |
| Vendor 2 | #####         | 6/1/2017   | 7/12/2017 | 
| Vendor 1 | #####         | 7/13/2017  | 9/30/2017 |
+----------+---------------+------------+-----------+
Run Code Online (Sandbox Code Playgroud)

在目标数据库中,我们有给定时间的活动供应商关系的记录,以及开始日期和结束日期。(Auth # 开始和结束日期单独跟踪)迁移后,前面列出的示例应如下所示。

+----------+------------+-----------+
|  Vendor  | Start Date | End Date  |
+----------+------------+-----------+ …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.6

4
推荐指数
1
解决办法
4613
查看次数

标签 统计

postgresql ×2

postgresql-9.6 ×2

datatypes ×1

functions ×1