1.Oracle中代替MSSQL内存储过程sp_columns的方法(查询所有列名):
①select * from user_tab_columns where table_name = ‘表名’;
②desc 表名
(注:查询出来的类型有的是不一样的)
2.SQL语句中不要用as
select * from info as a; //这么写是错误的
select * from info a; //这么写是正确的
3.SQL视图转换Oracle视图方法:
用PL/SQL右击Views新建视图,填写视图名称,然后直接复制SQL的视图语句粘贴到新建的Oracle视图CREATEORREPLACEVIEW V_USERS AS下
4.Oracle创建、修改存储过程:CREATE OR REPLACEPROCEDURE skeleton
5.Oracle不支持select top N
oracle中这样写,读取前N条:SELECT * FROM ( SELECT * FROM INFO ORDER BY SORT DESC)WHERE ROWNUM<=N;
6.Oracle中关键词字段不需要处理,不要加[ ],会报错
7.MSSQL:select* from table where id =@id;
ORACLE:select* from table where id =:id;
8.Oracle字段名不要用:order、file、brief、desc、uid、level
9.添加、修改日期类型字段时需要处理
insert into table(created) values(‘2012/9/6’); //错误
insert into table(created) values(to_data(‘2012/9/6 12:50:45’,’YYYY-MM-DDhh:mm:ss’)); //正确
10.Oracle创建表和字段的时候最好不要加””,例如
CREATE TABLE "info" (
“id” INTEGER NOT NULL
)
加了双引号后查询等SQL语句也要加””:
select “id” from “info”;
但是,如果是拼SQL语句的时候就很麻烦了,(我遇到这个问题的时候没有解决出来),比如:
string tablename = “info”;
string sql = “select * from “ +tablename; //这么写看着是正确的,但是是错误的,因为表名创建时加了””,所以查询的时候也要加,但是这种情况怎么加?
11.Oracle修改表名的方法(这个方法可以把带””的表名改成不带的)
rename oldname to newname;
12.查询表是否存在:
MSSQL:SELECTCOUNT(*) FROM [Information_Schema].[Tables] WHERE [TABLE_NAME] = ‘表名’;
Oracle:select count(*) from tabs where table_name = ‘表名’;
13.Oracle不支持一次执行两条SQL语句的方式,这样写报错,比如:
string strSql = "INSERT INTO TableName(ID,MYNAME)VALUES (:ID,:MYNAME); select max(ID) from TableName";
14.Oracle不支持SELECT Row_Number() over(order by ID_) rowNum2,* from INFO,这么写,要把*换成字段名称
4249

被折叠的 条评论
为什么被折叠?



