PL/SQL破解方法(不需要注册码)
打开注册表
在run下输入regedit
删除
1.HKEY_CURRENT_USER/Software/Allround Automations
2.HKEY_CURRENT_USER/Software/Microsoft/Security
查询命令
查询当前库的表空间
select tablespace_name from dba_tablespaces;
查询当前用户的表空间
select table_name,tablespace_name from user_tables;
删除表命令
DELETE FROM <table/view> [WHERE ]
创建用户并指定表空间
创建表空间
//查询 SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;
sql>CREATE TABLESPACE DB_DATA
LOGGING DATAFILE ‘D:\APP\ADMINISTRATOR\ORADATA\ORCL\temp.dbf’
SIZE 32M --表空间大小
AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED – 表空间自增长
EXTENT MANAGEMENT LOCAL;
其中’DB_DATA’和’DB_TEMP’是你自定义的数据表空间名称和临时表空间名称,可以任意取名;
'D:appAdministratororadataNewDBDB_DATA.DBF’是数据文件的存放位置,'DB_DATA.DBF’文件名也是任意取;'size 32M’是指定该数据文件的大小,也就是表空间的大小。
2.创建临时表空间
create temporary tablespace user_temp
tempfile ‘D:\APP\ADMINISTRATOR\ORADATA\ORCL\xyrj_temp.dbf’
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
2.创建用户
create user data_name identified by “data_pwd” --创建用户
default tablespace tableSpace_name – 默认表空间
temporary tablespace TEMP_name --临时表空间
profile DEFAULT;
3.授权
grant dba to data_name; – dba权限
grant connect to data_name; --连接权限
grant resource to data_name; --资源使用权限
给用户授予权限
grant connect,resource to username;
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间,
这就不用在每创建一个对象给其指定表空间了
撤权:
revoke 权限… from 用户名;
删除用户命令
drop user user_name cascade;
在进行procedure执行的时候,用的是PL/SQL工具中的test,调试方法进行执行,因为有输入参数,但是报了个错:
“note:debugging requires the debug connect session system privilege”.
原因是用户权限不够,使用以下命令授予权限:
GRANT debug any procedure, debug connect session TO username
其实只需要授予debug connect session 就可以了,已经过测试
例子:创建用户,赋管理员权限
创建用户:
create user 用户名 identified by 密码 default tablespace 默认表空间 temporary 临时表空间;
赋管理员权限:
grant connect,resource,create any view,create any synonym,create database link to 用户名
查找用户
select * from dba_users;
查找工作空间的路径
select * from dba_data_files;
删除用户
drop user 用户名称 cascade; //最后这个级联特别有用(删除用户以及所有关联的数据库对象)
删除表空间
drop tablespace 表空间名称 including contents and datafiles cascade constraint;
例如:删除用户名成为LYK,表空间名称为LYK
删除用户,及级联关系也删除掉
drop user LYK cascade;
删除表空间,及对应的表空间文件也删除掉
drop tablespace LYK including contents and datafiles cascade constraint;
update
首先必须把一个varchar类型的值转化为date类型后才可以插入:
sql:update tablename set DATEcolumn = to_date(‘2015-05-04 20:00:00’,‘yyyy-mm-dd hh:mi:ss’);
解释:修改tablename表中的日期字段的时间值为”2015-05-04 20:00:00“,to_date函数中第一个字段是要转化的值,第二个字段是日期的类型,这两个值必须保持格式一致。
拆分字符串
1.实现截取字符串
substr(string, start_position, [length])
其中,string是元字符串,start_position为开始位置,length是可选项,表示子字符串的位数。
例子:
substr(‘ABCDEFG’, 0); – 返回结果是:ABCDEFG,从0位开始截取后面所有
substr(‘ABCDEFG’, 2); – 返回结果是:BCDEFG,从2位开始截取后面所有
substr(‘ABCDEFG’, 0, 3); – 返回结果是:ABC,从0位开始往后截取3个字符长度
substr(‘ABCDEFG’, 0, 100); – 返回结果是:ABCDEFG,虽然100超出了元字符串长度,但是系统会按元字符串最大数量返回,不会影响返回结果
substr(‘ABCDEFG’, -3); – 返回结果是:EFG,如果是负数,则从尾部往前数,截取-3位置往后的所有字符串
2.查找字符串位置
instr(string, subString, [start_position, [nth_appearance]])
其中,string是元字符串;subString是要查找的子字符串;start_position是要查找的开始位置,为可选项(默认为1),注意在这里字符串索引从1开始,如果此参数为正,则从左到右检索,如果此参数为负,则从右到左检索;nth_appearance是元字符串中第几次出现的子字符串,此参数可选,缺省默认为1,如果是负数则系统报错。
例子:
instr(‘ABCDABCDAEF’, ‘AB’); – 返回结果是:1,因为instr字符串索引从1开始,所以是1不是0
instr(‘ABCDABCDAEF’, ‘DA’, 1, 2); – 返回结果是:8,返回第二次出现’DA’的位置
instr(‘A BCDABCDAEF’, ‘DA’, 1, 2); – 返回结果是:9,由于我在元字符串中加了一个空格,空格仍然算一个字符
3.替换字符串
replace(str1, str2, str3)
其表示的意思是:在str1中查找str2,凡是出现str2的地方,都替换成str3。
replace(‘ABCDEFG’, ‘CDE’, ‘cde’); – 返回结果是:ABcdeFG
replace(‘ABCDEFG’, ‘CDE’, ‘’); – 返回结果是:ABFG,CDE被替换成空字符
replace(‘ABCDEFG’, ‘CDE’); – 返回结果是:ABFG,当不存在第三个参数时,CDE直接被删掉
计算当前年龄
// 精确到了日
floor(MONTHS_BETWEEN(sysdate,to_date(字段 ,‘yyyy-mm-dd’))/12)
//精确到 月
select floor(MONTHS_BETWEEN(sysdate,to_date(substr(‘1938-05-17’, 0,7),‘yyyy-mm’))/12) age from dual
Oracle表被锁死如何解锁
2013年10月19日 21:39:19 阅读数:25793 用dba权限的用户登陆数据库。
1、select * from v$locked_object 查出被锁定的对象,其中object_id是对象的ID,session_id是被锁定对象有session ID;
2、select object_name, object_type from dba_objects where object_id = 刚才查出来的object_id;(根据vKaTeX parse error: Expected 'EOF', got '#' at position 92: …ect sid, serial#̲, machine, prog…session where sid =第1步中查出来的session_id;(是根据v$locked_object对应锁定记录的session_id找出来的) 然后 4、alter system kill session ‘sid,serial#’;用来杀死这个会话; 以上几个步骤即能解决对象被锁定问题。
另外附上锁定一个表的语句: LOCK TABLE tablename IN EXCLUSIVE MODE;将锁定整个表
导出数据库
exp User/pwd@localhost file=F:/LZCCB.DMP