LaB*_*cca 49 sql-server migration postgresql
有一个几乎相同,但并没有真正回答的问题在这里.
我正在将应用程序从MS SQL Server迁移到PostgreSQL.在代码中的许多地方我使用局部变量,所以我想进行需要较少工作的更改,所以请告诉我哪个是翻译以下代码的最佳方法?
-- MS SQL Syntax: declare 2 variables, assign value and return the sum of the two
declare @One integer = 1
declare @Two integer = 2
select @One + @Two as SUM
Run Code Online (Sandbox Code Playgroud)
这会返回:
SUM
-----------
3
(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
如果它包含可以简化翻译的重要文件,我会使用Postgresql 8.4甚至9.0.
ara*_*nid 74
Postgresql历史上不支持命令级别的过程代码 - 仅在函数内.但是,在Postgresql 9中,添加了对执行内联代码块的支持,该内联代码块有效地支持这样的内容,尽管语法可能有点奇怪,并且与SQL Server相比有许多限制.值得注意的是,内联代码块无法返回结果集,因此不能用于上面概述的内容.
通常,如果要编写一些过程代码并让它返回结果,则需要将其放在函数中.例如:
CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
one int;
two int;
BEGIN
one := 1;
two := 2;
RETURN one + two;
END
$$;
SELECT somefuncname();
Run Code Online (Sandbox Code Playgroud)
据我所知,PostgreSQL有线协议不允许返回多个结果集的命令.因此,您不能简单地将T-SQL批处理或存储过程映射到PostgreSQL函数.
| 归档时间: |
|
| 查看次数: |
106485 次 |
| 最近记录: |