我正在学习 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中
在源数据库中,对于同一供应商的每个授权代码以及该授权的开始和结束日期,我们有多个行。
+----------+---------------+------------+-----------+
| 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)