Oracle 使用随笔

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值