Oracle和SqlServer系统表操作差异对比
一、 Oracle知识点记录
1. 存放所有对象的视图 all_objects
2. 存放所有表的字段的视图 all_tab_columns
3. 在命令行下执行脚本时记录执行日志?
4. 出现“ORA-12704: 字符集不匹配”的错误,可以尝试在字符串前添加一个“N”解决
5. 出现“ORA-00932”的错误,可以尝试将Clob类型通过to_char函数转换为char类型解决
6. 判断字符串是否为空的方法:if str is null;而不是 if str=’’
二、 常用系统表对比
对象 | SQLSERVER | ORACLE |
查询所有表 | select [name] from sysobjects where type='U' order by [name] | select OBJECT_NAME from obj where OBJECT_TYPE = 'TABLE' order by OBJECT_NAME |
判断是否有自增长列 | select COUNT(*) from syscolumns where id=object_id('Admin') and status=0x80 | |
查找指定表的外键名称 | SELECT s.name FROM sysobjects s WHERE s.parent_obj=object_id('{0}') AND (s.xtype='F' OR s.xtype='PK') | select constraint_name from user_constraints where table_name='{0}' and (constraint_type='P' or constraint_type='R') |
判断指定的表是否有自增长列 | select COUNT(*) from syscolumns where id=object_id('{0}') and status=0x80 | select count(*) from dba_sequences where sequence_name like '{0}_%' |
查询一个表的所有列名 | select name from syscolumns where id=object_id(‘表名’) select count(*) from syscolumns where id=object_id(‘表名’) | SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ‘T_PROPERTY’ ORDER BY COLUMN_ID SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = ‘T_PROPERTY’ ORDER BY COLUMN_ID |
查询当前登录用户 | select * from user_users | |
查询某个表中的主键字段名 | SELECT name FROM SysColumns WHERE id=Object_Id('Area') and colid=(select top 1 colid from sysindexkeys where id=Object_Id('Area')) | select col.column_name |
对表的字段的增删改 | -- 增加字段 alter table ADMIN add COLUMN4 varchar2(20); --增加字段并设置默认值 alter table ADMIN add COLUMN5 timestamp default sysdate; -- 修改字段为非空 alter table ADMIN modify COLUMN4 not null; -- 修改数据类型 alter table ADMIN modify COLUMN4 number; -- 既修改数据类型有修改字段非空 alter table ADMIN modify COLUMN4 number not null; -- 增加默认值 alter table ADMIN modify COLUMN4 default 12; | |
编译/刷新视图(存储过程) | EXEC sp_refreshview @viewName; | --只能编译视图,不能起到刷新的效果,因为视图中的*被替换成了所有的字段了 ALTER VIEW vpage COMPILE; |
三、 数据类型对照表
| SqlServer | Oracle |
ID | number | |
长名称 | Varchar2(254) | |
布尔 | Number | |
URL | Varchar2(254) | |
整数 | Number | |
长整型 | Number | |
数字 | Number | |
枚举 | Varchar2(254) | |
元 | Number | |
万元 | Number | |
钱 | Number | |
日期 | timestamp | |
时间 | timestamp | |
年月 | Varchar2(10) | |
| Varchar2(254) | |
GUID | Varchar2(40) | |
HTML | clob | |
手机 | Varchar2(20) | |
文件名 | Varchar2(254) | |
身份证号 | Varchar2(20) | |
层次码6 | Varchar2(6) | |
层次码8 | Varchar2(8) | |
短名称 | Varchar2(20) | |
名称40 | Varchar2(40) | |
文2000 | Varchar2(2000) | |
备注 | clob |