Oracle使用学习总结

Oracle使用学习经验总结

张浩博客http://zhanghao007008.blog.163.com

sql语句部分

1.     新型企业级智能数据管理系统---Sybase ASE 12.5(Adaptive Server Enterprise)

2.     ** 17260, "Can't run %1! from within a transaction."

     

3.     在创建存储过程 CREAT之前编写存储过程德 错误编号说明

4.     charindex("sa_role", show_role())   

5.     begin

6.     @@trancount

Oracle系统安装配置

1.  修改sybase数据库sa用户密码

2.   

3.  env查看环境变量

4.  linux中.bash_profile和.bashrc的什么区别

5.  数据库中执行“存储”过程。

6.  bcp导入、导出数据,备份数据库、备份表格数据、备份数据

●bcp

7.  附录1、英文错误码描述:(灵活运用!!!)

1.A user with the same name already exists in the database

       在数据库中已经存在相同的一个用户

2.is not a valid name

       不是一个可用的名字

3.User already has a login under a different name.

       用户已经用一个不同的名字登录了

4.No login with the specified name exists

       没有登录

5.Timerange name must be non-NULL

       时间范围名字必须不为空

6.Limit type must be non-NULL

       限制类型必须不为空

7.Unknown limit type

       不可知的限制类型

8.Ge

       获得开始结束时间从当前的范围

9.

8.  附录2、错误语句:

9.  附录3、错误语句:

10. 附录4、错误语句:

11. 附录5、错误语句:

自我总结书籍和网站(建议经常去看看,呵呵)

1.      

2.      

3.      

4.      

5.      

 

第二篇:Oracle学习之总结

一、学会操作库

首先在命令行:输入sqlplus 以sys as sysdba登录后操作

unix下先输入 su – oracle切换到Oracle后,再输入sqplus同上

1、怎样创建一个库?

命令如下:

//创建表空间

Create       tablespace     NMJY   datafile 'D:\app\Administrator\product\11.2.0\dbhome_1/oradata/NMJY.dbf' size 200M reuse autoextend on next 1280K maxsize unlimited;

//创建用户 并设置默认表空间

create user NMJY identified by nmjy2011 default tablespace NMJY quota 10m on users; 

//授权

grant connect,resource,dba to NMJY ;

grant sysdba to NMJY ;//此处授予最高权限

commit;//提交操作

2、怎样删除一个库?

命令如下:

//删表空间

drop tablespace lvyong including contents; 

//删用户

drop user nmjy cascade;

3、怎样备份和还原库?

创建目录语句:CREATE DIRECTORY dumdir as ‘d:dump’;

下面以备份和还原unix下的nmjy库为例:

--切换到oracle(windows下不需切换)

su - oracle

--备份(此处路径名是自己创建的dumdir,也可以自己直接输入指定路径)

expdp nmjy/nmjy2011@orcl schemas=nmjy DIRECTORY=dumdir dumpfile=nmjy11117.dmp    ;

【说明:命令(expdp库(nmjy/密码(nmjy2011@服务器(orcl shemas=用户(nmjy路径(DIRECTORY =dumdir dumpfile=文件名(nmjy11117.dmp)】

--还原

Impdp   nmjy/nmjy2011@orcl DIRECTORY=dumdir DUMPFILE=NMJY11117.DMP

【说明同上】

二、    怎样从sql server导入表到oracle

在此借助开发工具Visual Studio2008:

1、打开Visual Studio2008 ,在工具栏中找到“连接到数据库”,点击后添加一个Oracle库的连接,

在服务资源管理器中找到此连接,,右击点‘导入表…’

弹出如下页面:

点新建一个连接,之后:

然后更改连接,选择Sql Server,如下:确定后,根据向导向后操作,到如下页:

选择要导入的表,防止和Oracle库的已存在的表名冲动,统一在表名后加了个1,下一步检查列类型,

把NCLOB类型转为varchar2(4000),节省不需要的空间,然后点完成即导入。

之后再通过PLSQL工具到把带1的表中数据导入到对应表中

注:Oracle是严格区分大小写的,凡牵扯到用户ID之类的务必用Upper()转换后导入。

说明:在Oracle库之间导入数据的时候,也可用此办法。

 

三、 SqlServer Oracle语句编码比较

经过这一段时间的Oracle版本程序和数据库的修改,总结如下:

1、在后台C#代码中拼Sql语句执行的时候,用begin…end ,中间是需执行语句且以分号结尾

2、凡是关于用户ID查询的,请转换成大写后再执行查询

3、新增用户或子用户的功能,也要注意把用户ID转成大写后再插入数据库

4、在SqlServer中的字符串连接是用+,Oracle中的字符串连接是用||

5、SqlServer中的字符串转换函数可以用convert、cast,Oracle中是用to_char、cast,

为了通用,建议平时养成用cast的习惯

6、读取前10行,SqlServer中是用select  top 10 from table,Oracle是用select * from table where rownum<=10

7、Oracle读取随机10个数据的方法如下(类似Sql Server里的top,order by newid()语句)  :

前两种比较慢

---第一种

select * from (

       select * from tb_company order by  SYS_GUID()

) a where rownum<=10

--第二种

select * from (

  select * from tb_company order by dbms_random.value

) where rownum<=10

--第三种

select * from tb_company sample(10) where rownum <= 10

6、--Oracle里判断一个表是否存在,然后删除  (类似Sql server里的if exists语句)

begin

  execute immediate 'drop table JUSTTABLE';

  exception WHEN OTHERS THEN NULL;

 end;

8、SqlServer中的insert语句可以省略into,Oracle中必须要加into

9、SqlServer 中的判断为是否空的函数是isnull(column,’空’), Oracle中判断是否空是NVL(column,‘空’)

10、            修改表中列的属性:

SqlServer中是alter table alter column 列名 类型,Oracle中是alter table modify 列名 类型 

9、凡是手动操作数据库时,要在最后一步执行Commit命令语句确认

相关推荐