最近,将原来的数字符字段转换为数字时,总报错误:无效数字. 如何找出其中哪些是非数字字符的记录?比较麻烦的事.下面是用Oracle DB自带的函数translate可以找出来的 1.创建测试表 Create Table TestChar(    ITEM_NUMBER VARCHAR2(20)); 2.手工插入测试记录 Insert Into TestChar (ITEM_NUMBER) values ('312');Insert Into TestChar (ITEM_NUMBER) valu…
一.用户及权限(DBA有最高系统权限) 1.数据库的安全性:系统的安全性.数据的安全性 2.权限分类: 2.1系统权限:获得后可访问数据库 常用的有create table,create user,create views,create session 2.2对象权限:操作数据库对象的内容 Select  insert  update  delete 3.权限的使用 3.1授予系统权限 grant 系统权限 to 用户 [with admin option] with admin option…
1:查看当前用户的缺省表空间 SELECT USERNAME, DEFAULT_TABLESPACE FROM USER_USERS; 2:查看当前用户的角色 SELECT * FROM USER_ROLE_PRIVS; 3:查看当前用户的系统权限和表级权限 SELECT * FROM USER_SYS_PRIVS; SELECT * FROM USER_TAB_PRIVS; 4:显示当前会话所具有的权限 SELECT * FROM SESSION_PRIVS; 5:显示指定用户所具有的系统权限…
oracle中case when then及decode用法 一.case … when … then 语法:  – 写法一:  case(条件)  when 值1 then 返回值1  when 值2 then 返回值2  else 缺省值  – 写法二:  case when 条件1 then 返回值1  when 条件2 then 返回值2  else 缺省值  end; 案例1: -- 如果部门编号为10的,显示为dept10 -- 如果部门编号为20的,显示为dept20 -- 如果部…
1.在pl/sql中打开cmd命令容器 2.在cmd命令窗口中输入:explain plan for select * from t; 3.查看sql语句的执行计划:select * from table(dbms_xplan.display); MISSES IN library cache during parse:1 翻译:发生在解析的硬解析数量为1,表示硬解析 MISSES IN library cache during parse:0 翻译:发生在解析的硬解析数量为0,表示没有硬解析,…
1.update 表名 set 表字段=(select 另一个表中的相同字段 from 另一个表表名 where 表.字段=另一个表.字段) where  表.字段=? 例子:将某个表中的更新到另一个表中 update psp_model  m set m.mp_id=(select mp_id from psp_c_mp mp where p.mp_no=mp.mp_no) where  m.mp_no=? 2.insert into 表名  m(mp_id,mp_name,mp_no,org…
--查出所有现金中心的单位IDwith AllUnitas(select t.ORGANIZATIONID orgid,t.parentidfrom CDMS_ORGANIZATION t where T.CATEGORY = 4start with t.organizationid = '05e85693-14b0-4582-8063-8fbde85371f0' connect by t.parentid = PRIOR t.organizationid), N_instockas(-- in…
1.查询锁表 SELECT a.object_name,b.session_id,c.serial#,c.program,c.username,c.command,c.machine,c.lockwait FROM All_Objects a, v$locked_object b , v$session c WHERE a.object_id=b.object_id AND c.sid=b.session_id; 2.查询运行中的进程(存储过程) select b.sid,b.SERIAL#,a…
很多应用中都会有类似组织机构的表,组织机构的表又通常是典型的层次结构(没有循环节点).于是通过组织控制数据权限的时候,许多人都喜欢通过connect by获得组织信息,然后再过滤目标数据. 在有些情况下,这样写并没有什么问题,但有些情况下,这个就是一个大问题. 归根结底,这是connect by特性导致的,oracle无法知道connect by之后到底返回多少数据,所以有可能采取一些你所不期望的算法,结果自然不是你所期望的---非常慢. 下面,我就讨论在12.1.0.2中如果遇到这样的语句应该…
从oracle导出一个表的数据,导出的格式是insert语句,数据量30万. 直接在PL/SQL Developer中执行,速度非常慢,脚本中也是100条数据提交一次.因为需要的时间太长,每次中断后,下次执行,又要重新全部导入,需要把之前导入的数据清除. 为了能够断点续传,想了个办法: 用Python把脚本分拆,用commit作为分隔符(脚本中每100条数据有一个commit),分拆成多个脚本,用Python遍历文件夹下的脚本,分别执行每个脚本的语句,执行完成后,把脚本移动到BAK目录,这样即使…