记录一下本人Oracle学习过程中的琐碎知识点,备查!如有谬误,敬请告知!谢谢!
- 常用命令:
show user: 查看当前登录身份
show all: 查看全部环境变量:
可以通过在文件名前加@来运行脚本:
sql> @c:\data\someDirectory\somescrip.sql
conn[ect] 用户名/密码@网络 [as sysdba / as sysoper] : 以不同权限切换登录身份
disc [conn[ect]]: 断开登录,但不退出sql窗口,方便再次登录其它身份。
exit:断开登录,同时退出sql窗口。
edit: 编辑.sql脚本。 命令格式:edit 脚本文件路径
spool:保存sql窗体内容到文件中。
命令的执行步骤如下:
1、开启功能: spool on;
2、设置文件路径: spool d:/1.txt;
3、执行sql命令
4、关闭功能,此时会自动保存spool on后执行的内容到文件: spool off; - Oracle数据类型:
1、char类型: 定长,存储占用固定长度,不足补空格,最大存储2000字符。通常用于保存商品编号等定长数据。
2、nchar类型:定长。unicode编码存储,最大存储2000字符。无论是一个字母或汉字都只占一个字符空间。
3、varchar类型:变长,按实际的字符数存储。最大存放4000个字符。
4、nvarchar类型:变长,unicode编码存储,按实际的字符数存储。最大存放4000个字符。
5、clob类型:变长。字符型对象,最大存储8tb。
6、blob类型:变长。二进制数据,可以存放图像/声音。最大存储8tb。
说明:实际开发中,一般是记录文件的存储路径/URL,很少会直接保存文件在数据库。除非对图像/声音文件的安全性有高要求,可以保存到数据库。
7、number类型:数值,变长,既可以存整数,也可以存小数类型。
语法:number(p,s) p为有效位位数,有效位从左边第一个不为0的数算起的位数。s为小数位
范围: 1≤ p ≤38, -84≤ s ≤127
说明:实际开发中,如果有明确要求保留几位小数,则指定明确指定,否则统一使用number即可。
8、date类型: 表示时间,年月日时分秒
Timestamp(n) 时间戳类型:随数据更新自动时间日期。 - Oracle的登录机制:
使用windows系统学习oracle的初学者可能会发现一个现象,即当以sysdba身份登录oracle时,show user显示的身份并不是登录身份:
更神奇的是,即便你用户名/密码是错的,也可以登录成功:
原因在于oracle的登录验证机制,如果当前登录的windows用户属于系统的ora_dba用户组(安装oracle时自动创建的用户组),则oracle认为是特权用户(sys用户),默认会使用操作系统认证,否则才会使用普通用户的数据库验证方式(即用户名密码验证)登录。
如果登录时加上as sysdba,dbms看到后则认为是要以特权用户登录,不检查用户名和密码,登陆后自动切换成sys用户。
修改oracle登录认证方式:
可通过修改sqlnet.ora文件更改oracle登录认证方式:
SQLNET.AUTHENTICATION_SERVICES=(NTS) 基于操作系统验证;
SQLNET.AUTHENTICATION_SERVICES=(NONE) 基于Oracle验证;
SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS) 二者共存。 - 如何浏览器中登录oracle?
方法一: 执行命令:emctl start dbconsole
启动数据库的dbconsole服务(不建议启用,有风险),得到访问链接就可以。
但命令执行可能会出现如下错误:Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.