Oracle和SqlServer系统表操作差异对比
来源:未知 责任编辑:责任编辑 发表时间:2014-03-23 22:30 点击:次
一、 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
from user_constraints con, user_cons_columns col
where con.constraint_name = col.constraint_name
and con.constraint_type=’P’
and col.table_name = ‘YourTableName’
对表的字段的增删改
-- 增加字段
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;
ALTER PROCEDURE gcps_execsql COMPILE;
三、 数据类型对照表
SqlServer
Oracle
ID
number
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
from user_constraints con, user_cons_columns col
where con.constraint_name = col.constraint_name
and con.constraint_type=’P’
and col.table_name = ‘YourTableName’
对表的字段的增删改
-- 增加字段
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;
ALTER PROCEDURE gcps_execsql COMPILE;
三、 数据类型对照表
SqlServer
Oracle
ID
number
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>