1.忘记数据库sid(system identifier 系统标识符)问题:
可以在注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1中找到oracle_sid的值
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE这个值中存放的是oracle安装产品和运行环境、参数设置的注册项
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraDb11g_home1 存放的是oracle中odbc的注册项
2.oracle中文件
C:\app\Administrator\admin 文件夹下每个数据库都有一个以数据库名称(即DB_NAME的值)命名的子文件夹,如orcl,其中的pfile文件夹中保存初始化参数文件
C:\app\Administrator\cfgtoollogs 文件夹中存放当运行dbca、emca、netca等图形化配置程序时的日志。
C:\app\Administrator\diag是一个重组之后的文件夹、基本上oracle的每个组件都有了自己的单独的文件夹,无论是asm、crs、rdbms还是lsnrctl和tnslsnr所有逐渐需要被用来诊断的log文件都放在这个文件夹中。
C:\app\Administrator\product 是oracle RDBMS(Relational Database Management System)软件的存放文件夹。
3.sqlplus
C:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin\help中的helpus.sql中保存了sqlplus所有命令的帮助信息;运行helpus.sql这个脚本文件就可以安装帮助信息,用户可以通过查看该脚本文件了解sqlplus的各个命令的使用方法。
4.sqlplus命令:
在sqlplus 中输入help index 即可显示所有的sql*plus命令 ( help[?] 命令 即可查询帮助)
A.常用到的是desc[ribe]命令 用来查看表、视图、同义词等对象的描述。
B.#的使用:有时候在sql*plus中输入了很长的sql语句后,突然发现想起来某个列的名字了,可以在下一行以#开头,就可以在输入sql语句的过程中临时运行一个 sql*plus命令,执行完成以后再继续输入刚才的sql语句
C.关于文件的操作命令有:sav[e] 、 get、 edit、 spo[ol]、 start或者@:
spo 可以将sql*plus中的各种操作及运行结果复制到filename[.ext]所指定的文件中,默认的扩展名为:.lst默认路径和sqlplus.exe程序中的路径相同
D.与start、@命令不同,get命令将文件读入sql缓冲区再执行,所以读入文件中不能有sql*plus命令,只能有sql语句,pl/sql块,且语句结尾不需要“;”最后一行只 能是“/”不然无法执行。 start filename.sql或者filename.ext 可以指定脚本文件的完整路径。@命令即可以在sqlplus中执行也可以在操作系统的命令提示符中执 行而start只能在sqlplus中执行。如:在dos中输入 sqlplus scott/tiger @d:\script.sql 20 50 注释:20 50是运行脚本文件传递的参数。
5.交互式命令:
1>.sqlplus允许在sql语句中定义替换变量,格式是在变量名称之前加一个& 如:select &a from dept where deptno =20 and job ='&b';在对字符或日期数据类型的列使用替换变量时,应保证在sql语句中将这些替换变量用单引号括起来,如上例,否则用户就需要在输入时用单引号将输入的数据括起来,以保证最后的sql语句的格式正确。
变量替换:def[ine]|[variable = text]命令定义替换变量并赋值;
def c=clerk
select ename from emp where deptno = 20 and job ='&c';用define c可以查看替换变量c的情况;define可以查看oracle变量的设置;用undefine命令清楚该变量
2>.用户通信命令:
prompt、pause、 accept
prompt [text] 将指定的提示信息text或者一个空行输出到屏幕上,以便用户及时了解脚本文件的功能和运行情况;
pause [text] 将用于暂停脚本文件的运行,将指定的提示信息text或者一个空行输出到屏幕上,等待用户按enter键响应后继续执行;
accept用法:
eg:
undefine pwd a b
accept pwd prompt '请输入密码: ' hide
define pwd
prompt
prompt 显示xx部门xx工种的员工姓名
prompt =======================
prompt
pause '按<enter>键继续'
accept a number prompt '请输入部门编号:'
accept b char prompt '请输入工种名称:'
define a
define b
select ename from emp where deptno =&a and job = &b;
绑定变量命令 : variable
6.sqlplus系统设置命令 :
show、set
系统变量:arraysize、autocommit、colsep、echo、feedback、heading、headsep、linesize、newpage、pagesize、pause、serveroutput、time、timming、
trimspool、underline、verify
--注释部分 REMARK crtreport.sql REMARK 用脚本文件生成报表举例 --设置环境变量 REMARK SET termout off SET pagesize 18 linesize 80 SET feedback 20 SET underline = --格式化列 COLUMN deptno HEADING 部门编号 JUSTIFY CENTER FORMAT 0000 COLUMN ename HEADING 雇员|姓名 JUSTIFY CENTER FORMAT A10 COLUMN sal HEADING 每月|工资 JUSTIFY CENTER FORMAT $9999.99 COLUMN comm HEADING 奖金 JUSTIFY CENTER FORMAT $9999.99 -- 现在重复行和使用汇总行 BREAK ON deptno COMPUTE SUM LABEL 小计: OF sal ON deptno COMPUTE MAX LABEL 最大值: OF comm ON deptno COMPUTE SUM LABEL 总计: OF sal ON REPORT COMPUTE SUM LABEL 最大值计: OF comm ON REPORT --获取系统当前日期 COLUMN today NEW_VALUE reptoday SELECT TO_CHAR(sysdate,'YYYY-MM-DD') today FROM dual; --标题和脚注 REPHEADER CENTER "雇员工资报表" SKIP 1 - CENTER reptoday SKIP 1 BTITLE RIGHT "第" FORMAT 99 SQL.PNO "页" --输出保存到文件d:\report.txt SPOOL D:\report.txt --清除屏幕 CLEAR SCREEN --SQL命令 SELECT deptno ,ename,sal,comm FROM emp ORDER BY deptno; --输出结果 SPOOL off --清除用户自定义的环境、列格式、输出 REMARK SET termout ON SET pagesize 14 linesize 80 SET feedback 6 SET underline "-" CLEAR COLUMNS CLEAR BREAKS CLEAR COMPUTES REPHEADER OFF BTITLE OFF