Oracle经常使用的语句,你可能有时候需要用到

写在前面:

  • 以下都是由于工作中可能需要用到的语句,经过各种搜罗整理出来的一部分觉得比较有用的Oracle的一些语句,如果查询报错请切换至具有DBA权限的用户执行。
  • 这些资料都是别人共享给我们学习使用,那现在我也整理下共享出来,来贯彻我们的行业精神。
  • [我是一名Java Web菜鸟程序员,如有错误欢迎指出,轻点喷…]
  • 陆续更新中… …
  • 不知道大家有没有同感,我觉得做java Web就是从前端到后台再到部署运行,什么都要会。纯前端的框架不考虑,起码要会Html,css,js,jquery,javaee ,spring ioc,aop,mvc ssh|ssm,oracle|mysql , tomcat,nginx,linux,cache,可能还会用到mq,还有最近比较火的spring-cloud/boot 等等等等一些乱七八糟的工具和知识点,那么这么多,这么乱就要取学会整理,靠死记是记不住那么多东西的。整理的好了,以后直接cv大法拿来用,岂不快哉!

Oracle用户表空间创建

--例如我要创建一个用户为 bidb的用户 密码为 bidb_123
create user bidb identified by bidb_123;

--授予bidb用户各种权限
grant create session,create table,create view,create sequence,unlimited tablespace to bidb; 
grant create any procedure to bidb; 
grant execute any procedure to bidb;

--创建bidb表空间
create tablespace bidb datafile '/u01/oracle/app/oradata/bidb/bidb_data01.dbf' size 1M autoextend on maxsize 30G extent management local;  
--扩展表空间
alter tablespace bidb add datafile '/u01/oracle/app/oradata/bidb/bidb_data02.dbf' size 1M autoextend on maxsize 30G;

--切换归档文件
alter system switch logfile;

--查看数据库文件
select * from dba_data_files;
--查看表空间文件大小
select file_name,bytes/1024/1024 M from dba_data_files where tablespace_name='bidb';

--设置用户bidb的表空间为bidb
alter user bidb default tablespace bidb;

--删除用户
drop user bidb cascade;

--删除表空间
drop tablespace bidb including contents and datafiles cascade constraint;

oracle创建dblink连接

--首先创建dblink一定要有创建dblink的权限
--给用户bidb授权
grant create database link to bidb;

--创建一个能够连接test用户的dblink,dblink的名称这里定义为testlink
--test_pwd: test用户的密码    注意配置好IP,端口号
create database link testlink
  connect to test identified by test_pwd
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )';
  
--创建好之后就可以使用dblink了,例如:
select * from t_test_user@testlink;

--如果要创建公共dblink的话,加上 /* public */ 
create  /* public */  database link ....
--查看 dblink
select * from dba_db_links;
--删除 dblink
drop public database link dblinkname;
drop /* public */ database link dblinkname;  

修改Oracle连接数

--查看Oracle数据库默认允许重复连接多少次,默认是10次
select * from dba_profiles WHERE resource_name = 'FAILED_LOGIN_ATTEMPTS' AND PROFILE = 'DEFAULT';

--修改Oracle数据库默认连接数为100个用户
alter profile default limit FAILED_LOGIN_ATTEMPTS 100;

--设置无限制
alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED; 

oracle用户解锁语句

--给用户解锁
ALTER USER username ACCOUNT UNLOCK;

oracle查询表空间使用情况

select 
b.file_id 文件ID号, 
b.tablespace_name 表空间名, 
b.bytes/1024/1024||'M'字节数, 
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M' 已使用, 
sum(nvl(a.bytes,0))/1024/1024||'M' 剩余空间, 
100 - sum(nvl(a.bytes,0))/(b.bytes)*100 占用百分比 
from dba_free_space a,dba_data_files b 
where a.file_id=b.file_id 
group by b.tablespace_name,b.file_id,b.bytes 
order by b.file_id;

查看Oracle当前连接的情况

 select s.username 用户名,
   s.osuser 操作系统用户,
   s.program 使用程序,
   s.MACHINE 服务器,
   s.sid,s.serial#,p.spid,
   'alter system kill session '||''''||trim(s.sid)||','||trim(s.serial#)||''';' Kill语句
   from v$session s,v$process p where s.paddr = p.addr 
   --and s.username ='';  --过滤用户

查询Oracle正在执行的sql语句情况

SELECT b.sid,  
       b.username 用户名,
       b.serial#,
       spid,
       paddr,
       sql_text 正在执行的SQL,
       b.machine 服务器,
       'alter system kill session ' || '''' || b.sid || ',' || b.serial# || '''' || ';' as kill语句
FROM v$process a, v$session b, v$sqlarea c 
WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 
--and b.username='';  --过滤用户

查询oracle当前被锁对象

SELECT l.session_id sid,  
       s.serial#,  
       l.locked_mode 锁模式,  
       l.oracle_username 用户名,  
       s.machine 服务器,
       o.object_name 被锁对象名,
       s.logon_time 登录数据库时间,
       'alter system kill session ' || '''' || sid || ',' || s.serial# || '''' || ';' Kill语句
FROM v$locked_object l, all_objects o, v$session s 
WHERE l.object_id = o.object_id 
AND l.session_id = s.sid; 

Kill不掉的锁处理(ora-00031:session marked for kill)

如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

select spid, osuser, s.program 
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24; (24是上面的sid)

在OS上杀死这个进程(线程):
1)在unix/linux上,用root身份执行命令:

#kill -9 12345    (即上面查询出的spid)

2)在windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:

orakill sid thread
其中:
sid:表示要杀死的进程属于的实例名
thread:是要杀掉的线程号,即第3步查询出的spid。
例:c:>orakill orcl 12345

PLSQL

查询数据中文乱码解决办法

1.执行下面语句

select (select value from nls_database_parameters where parameter = 'NLS_LANGUAGE') ||'_'||
(select value from nls_database_parameters where parameter = 'NLS_TERRITORY') ||'.'||
(select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET') as NLS_LANG FROM DUAL;

2.设置环境变量

设置环境变量NLS_LANG 为1中得到的NLS_LANG值,重启PLSQL解决

PLSQL解决&符号插入问题

使用命令行执行 set define off
然后继续执行需要执行的语句即可

还有一种解决方案即用 使用拼接符拼接即可 例如
insert into table values (‘name’, ‘code’ , ‘code’||’&’||‘name’);
【ps:因为要经常整理升级的sql执行起来太麻烦,所以整理sql产生&符号的时候统一采用拼接的方法很方便】

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WEB届的阿猫阿狗

即使没有奖励,我也不会停下脚步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值