当前位置: 网学 > 编程文档 > 其他类别 > 正文

Openbravo开发手册

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/07
ROM ..)

    PostgreSQL不支持在更新的字段中加上表名。
    PostgreSQL不支持DELETE TABLE,可以使作DELETE FROM
    PostgreSQL不支持在ORDER BY或GROUP BY中使用参数,如‘1’。而没有引号的数字是可以的。
    PostgreSQL不支持CURRENT OF语句。
    PostgreSQL不支持COMMIT。它会在BEGIN和END块间自动显示的提交。抛出例外时会产生ROLLBACK。
    PostgreSQL不支持SAVEPOINT。可以用BEGIN,END和ROLLBACK完成同样的功能。
    PostgreSQL不支持CONNECT。
    PostgreSQL和Oracle都不支持用变量来指定表的字段名称。如使用v_IsProcessing替代IsProcessing。
    PostgreSQL不支持EXECUTE IMMEDIATE...USING。可以使用SELECT和参数来完成相同的功能。
    PostgreSQL在调用没有参数据函数时要加上括号。
    DBMS.OUTPUT应该在一行内,以使自动翻译可用。
    在PostgreSQL中任何字符串与NULL连接都会产生一个NULL的字符串。建议用COALESCE或将变量初始化为‘’。

        注意:在Oracle中null||'a'结果是'a',而在PostgreSQL中结果是NULL,所以应使用coalesce(null,)||'a'。但时如果变量是Oracle的NVarchar类型时会引发ORA-12704:字符集不匹配的错误,这时可以这样做coalesce(to_char(myNVarCharVariable),)||'a'。

将以下语法

COALESCE(variable_integer, '')



 COALESCE(variable_integer, 0)

来代替,以保证可以在PostgreSQL中也可以运行。

    PostgreSQL执行SELECT FOR UPDATE是在表级而Oracle是在列级别。
    PostgreSQL不支持带有三个参数的INSTR命令,可以使用SUBSTR。
    在Oracle中SUBSTR(text,0,Y)和SUBSTR(text,1,Y)的结果是相同的,但是PostgreSQL中不同。所以要使用SUBSTR(text,1,Y)。
    PostgreSQL不支持这样<<LABEL>>的标签。
    在日期比较中默认的日期是1900.1.1或9999.12.31。
    如要将日期类型转换为文本型时要使用to_date函数和相应的掩码。

如:

COALESCE(movementdate, TO_DATE('01-01-1900', 'DD-MM-YYYY'))

游标

有两种使用游标的方法:FETCH子句和FOR循环。

Oracle中FETCH游标的声明:

CURSOR    Cur_SR IS

PostgreSQL中:

DECLARE Cur_SR CURSOR FOR

FOR循环中的游标格式:

TYPE RECORD IS REF CURSOR;
    Cur_Name RECORD;

这在Oracle和PostgreSQL中都可以使用。

数组

在Oracle中数组是这样定义的:

TYPE ArrayPesos IS VARRAY(10) OF INTEGER;
  v_pesos ArrayPesos;
v_dc2 := v_dc2 + v_pesos(v_contador)*v_digito;

但在PostgreSQL中是这样定义的:

v_pesos integer[];
v_dc2 := v_dc2 + v_pesos[v_contador]*v_digito;

ROWNUM

为了限制SELECT语句返回的行数,需要创建游标来读取记录。代码如下:

--Initialize counter
v_counter := initial_value;
--Create the cursor
FOR CUR_ROWNUM IN (SELECT CLAUSE)
LOOP
  -- Some sentences
  --Increment the counter
  v_counter := v_counter + 1;
  --Validate condition
  IF (v_counter = condition_value) THEN
    EXIT;
  END IF;
END LOOP;

%ROWCOUNT

SQL%ROWCOUNT不能直接在PostgreSQL中使用,而需要定义一个变量。如:

 GET DIAGNOSTICS rowcount := ROW_COUNT;

用上面定
  • 下一篇资讯: 如何部署Openbravo 2.5
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号