随手记录下有时会用到,但不是很频繁,每次都要搜索的那些命令
1. 断开用户连接
删除用户的时候提示有在连接进程可用
1.查到用户进程
select sid,serial# from v$session where username=‘USERNAME’;
2.杀掉进程
alter system kill session ‘sid,serial’;
2. 退出expdat.dmp>模式
Ctrl+D
3. 创建用户,赋权
--新建表空间
create tablespace abc_tablespace
logging
datafile '/oracle/orcl/oradata/abc_tablespace01.dbf'
size 10240m
autoextend on
next 50m maxsize 20480m
extent management local;
--添加数据文件
alter tablespace abc_tablespace add datafile '/oracle/orcl/oradata/abc_tablespace02.dbf' size 10240M;
--新建用户,密码Abc#123,默认表空间abc_tablespace
create user abc identified by "Abc#123" DEFAULT TABLESPACE abc_tablespace;
--赋权(此处默认加了dba权限,可去除)
grant create session to abc;
grant connect,resource,dba to abc;
4. 创建dblink
create database link scott_test connect to scott identified by "123456" using
'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 198.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
5、收回DBA权限
查询DBA权限
select * from dba_role_privs where granted_role='DBA' ;
回收权限:
revoke dba from user_Name;
赋表空间权限:
由于回收DBA权限后用户的UNLIMITED TABLESPACE系统权限被回收,可以按下列方式之一给用户授权,以便用户能正常使用表空间。
grant RESOURCE to 用户名称;
alter user 用户名称 quota unlimited on USERS;
grant UNLIMITED TABLESPACE to 用户名称;
6、锁表解锁
查询锁表
SELECT L.SESSION_ID SID,
S.SERIAL#,
L.LOCKED_MODE,
L.ORACLE_USERNAME,
S.USER#,
L.OS_USER_NAME,
S.MACHINE,
S.TERMINAL,
A.SQL_TEXT,
A.ACTION
FROM V$SQLAREA A, V$SESSION S, V$LOCKED_OBJECT L
WHERE L.SESSION_ID = S.SID
AND S.PREV_SQL_ADDR = A.ADDRESS
ORDER BY SID, S.SERIAL#;
解锁
ALTER SYSTEM KILL SESSION'210,11562';/*KILL SESSION 两个值要换掉 分别为SID和SERIAL#号*/
7、存储过程循环
Oracle中存储过程的循环使用方法如下:
CREATE OR REPLACE PROCEDURE P_TEST is
BEGIN
DECLARE
i NUMBER;
BEGIN
i := 1;
WHILE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE('i=' || i);
i := i + 1;
END LOOP;
END;
END P_TEST;
其中,DECLARE用于声明变量,BEGIN和END用于标识存储过程的开始和结束,LOOP和END LOOP用于标识循环体的开始和结束。
————————————————
版权声明:本文为CSDN博主「123的故事」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41177135/article/details/131086348