GBase dual 表

1、基础说明

GBase8a 兼容 Oracle 风格 DUAL 虚拟表,作用:无表查询时使用,用于函数计算、常量输出。
-- 示例
SELECT SYSDATE FROM dual;
SELECT 1+2 FROM dual;
SELECT USER FROM dual;
 
对比差异:
 
MySQL 没有 dual,可以直接 select now();
 
Oracle/GBase8a 标准写法 select xxx from dual;

2、两种写法都支持

写法 1(标准 Oracle 兼容写法,推荐迁移场景)

SELECT SYSDATE FROM dual;
 

写法 2(GBase 扩展,省略 from dual)

SELECT SYSDATE;
 

3、常见内置函数搭配 dual

-- 当前会话用户
SELECT USER FROM dual;
-- 当前时间
SELECT SYSDATE FROM dual;
-- 系统当前时间戳
SELECT CURRENT_TIMESTAMP FROM dual;
-- 字符串处理
SELECT UPPER('gbase') FROM dual;
-- 序列取值(GBase8a支持sequence)
SELECT seq_test.NEXTVAL FROM dual;
 

4、重要运维知识点

  1. dual 不是真实物理表,是系统内置虚拟表,不能 DROP、不能 INSERT/UPDATE
-- 报错,禁止操作
DROP TABLE dual;
 
  1. 迁移注意事项
  • Oracle 迁移 GBase:原有 from dual 语句无需删除,直接运行
  • GBase 导出 SQL 给 Oracle:保留 from dual 保证兼容
  1. 区分大小写
     
    GBase 默认表名不区分大小写,DUAL / dual 均可。
posted @ 2026-08-18 09:52  我用python呀  阅读(50)  评论(0)    收藏  举报