网站开发的硬件环境和软件怎么写360推广登录平台
一、数值类型对比
| 数据类型 | Oracle | PostgreSQL | 说明 |
|---|---|---|---|
| 整数 | NUMBER(p,0) | SMALLINT/INT/BIGINT | Oracle 统一用 NUMBER,PG 区分精度范围 |
| 浮点数 | BINARY_FLOAT | REAL | 单精度浮点 |
| 双精度浮点 | BINARY_DOUBLE | DOUBLE PRECISION | 双精度浮点 |
| 高精度小数 | NUMBER(p,s) | NUMERIC(p,s) | 精确数值存储 |
| 自增序列 | SEQUENCE + TRIGGER | SERIAL/BIGSERIAL | PG 内置自增类型 |
二、字符串类型对比
| 数据类型 | Oracle | PostgreSQL | 说明 |
|---|---|---|---|
| 定长字符串 | CHAR(n) | CHAR(n) | 固定长度 |
| 变长字符串 | VARCHAR2(n) | VARCHAR(n) | Oracle 允许省略 FROM,PG 必须写 FROM |
| 大文本 | CLOB | TEXT | 无长度限制 |
| 二进制数据 | BLOB/RAW | BYTEA | 二进制存储 |
三、日期时间类型对比
| 数据类型 | Oracle | PostgreSQL | 关键差异 |
|---|---|---|---|
| 日期+时间 | DATE | TIMESTAMP(0) | Oracle 的 DATE 包含时间(到秒),PG 的 DATE 仅日期 |
| 高精度时间戳 | TIMESTAMP | TIMESTAMP | 均支持纳秒级精度 |
| 带时区时间戳 | TIMESTAMP WITH TIME ZONE | TIMESTAMPTZ | 时区处理逻辑相同 |
| 本地时区时间戳 | TIMESTAMP WITH LOCAL TIME ZONE | 无直接等价,需转换 | Oracle 特有类型 |
| 时间间隔 | INTERVAL DAY TO SECOND | INTERVAL | 功能类似 |
四、其他类型
| 类型 | Oracle | PostgreSQL | 说明 |
|---|---|---|---|
| 布尔值 | 无原生类型 | BOOLEAN | PG 支持原生布尔 |
| 行标识符 | ROWID | OID | 物理行地址标识 |
| JSON | JSON (12c+) | JSON/JSONB | PG 的 JSONB 支持二进制存储和索引 |
五、使用注意事项
-
类型转换
- Oracle 的
NUMBER(10)建议转为 PG 的INT,而非NUMERIC。 - Oracle 的
VARCHAR2迁移时直接映射为 PG 的VARCHAR。
- Oracle 的
-
语法差异
- PG 的子查询必须有别名,Oracle 可不写。
- 分页查询:Oracle 用
ROWNUM,PG 用LIMIT/OFFSET。
-
时区处理
- 带时区类型存储时,两者均转换为 UTC,但检索时 PG 按会话时区转换,Oracle 按数据库时区转换。
