标题: oracle 常用操作 [打印本页] 作者: qmf 时间: 2013-1-21 14:17 标题: oracle 常用操作 oracle 常用操作
1.恢复 sys system等内置帐户的密码
开始->运行->sqlplus "/as sysdba"
alter user sys identified by new_password;
2. drop table if exists xxxx
oracle 没有像 if exists 这样的支持,internet给的解决办法如下:
2.1 方法一 捕获异常
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE mytable';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
2.2 方法二 使用 select 进行提前判断
declare
c int;
begin
select count(*) into c from user_tables where table_name = upper('table_name');
if c = 1 then
execute immediate 'drop table table_name';
end if;
end;
3.转义字符
以下的文章主要介绍的是Oracle insert插入转义字符 ,单引号'与&符的相关问题,如果你觉得它们的名字很怪异,而且在实际的应用中也很少的涉及到它们的具体应用的话,以下的文章就是相关问题的解答。
今天在导入一批数据到Oracle时,碰到了一个问题:Toad提示要给一个自定义变量AMP赋值,一开始我很纳闷,数据是一系列的Insert语句,怎么会有自定义变量呢?后来搜索了一下关键字AMP发现,
Oracle把这里的URL的参数连接符&当成是一个自定义变量了,所以要求我给变量AMP赋值。怎么办呢?方法有三:
方法一:在要插入的SQL语句前加上Set define off;与原SQL语句一起批量执行
我们在SQL*PLUS下执行 SQL> show all命令时,可以发现一个参数:define "&" (hex 26),如下图所示
......
concat "." (hex 2e)
copycommit 0
copytypecheck ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT OFF
echo OFF
......
这个是Oracle insert插入转义字符里面用来识别自定义变量的设置,现在我们在SQL*PLUS下将其关闭:
SQL> Set define OFF;
1.查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
select * from dba_sys_privs;
select * from user_sys_privs;
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select * from role_sys_privs;
4.查看用户对象权限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5.查看所有角色:
select * from dba_roles;
6.查看用户或角色所拥有的角色:
select * from dba_role_privs;
select * from user_role_privs;
7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from V$PWFILE_USERS
================================================
ORA-01219 错误的解决办法
错误信息:
ORA-01219:database not open:queries allowed on fixed tables/views only “ORA-01219:数据库未打开:仅允许在固定表/视图中查询”的警告窗口!
解决办法如下:
1. 运行输入:sqlplus /nolog
2. 以sysdba的角色登录:connect sys/口令 as sysdba
3. 先执行”alter database open”,会出现如下的错误 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 6: D:\DATA\PROD\PRODDATA\CUX_INDEX_X_1.DBF
4. 执行“alter database create datafile 6;” 根据具体的数据文件号进行对应修改
5. 执行“alter database datafile 6 offline drop
6. 执行“alter database open”
================================================
ORA-01940: 无法删除当前已连接的用户的错误
select username,sid,serial# from v$session;
alter system kill session'9,4';
drop user a cascade;//删除用户以及用户表空间下所有对象作者: fengerapple 时间: 2013-1-25 17:23
Thank you very much for sharing!The good man!The good life of peace!