ORACLE的ALL_VIEWS数据字典text字段long类型问题
今天同事raise一个小问题,怎么在ALL_VIEWS数据字典text字段查找lrf字符串:
etl@DWTEST> select owner,view_name from all_views where instr(text,'lrf') > 0;
select owner,view_name from all_views where instr(text,'lrf') > 0
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
因text字段为long类型,此数据类型限制较多,故可以参考下面的PL\SQL代码段解决:
DECLARE
v_instr_view_ddl NUMBER;
BEGIN
FOR l_ctr IN (SELECT owner,view_name,
sign(dbms_lob.instr(DBMS_METADATA.get_ddl('VIEW',view_name,owner),'lrf')) AS instr_view_ddl
from all_views) LOOP
IF l_ctr.instr_view_ddl = 1 THEN
dbms_output.put_line(l_ctr.owner || '.' || l_ctr.view_name);
END IF;
END LOOP;
END;
有什么问题可留言噢!Good luck to U!
相关文档:
ORACLE的JOB创建,可惜的是不能改名,只能是数字的名字。
DECLARE X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'compile_invalid_object;'
,next_date => to_date('20-04-2010 ......
目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境。
Oracle 10g正则表达式提高了SQL灵活性。有效的解决了数据有效性, 重复词的辨认, 无关的空白检测,或者分解多个正则组成
的字符串等问题。
Oracle 10g支持正则表达式的四个新函数分别是:REGEXP_L ......
1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):
ORACLE的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection ......
oracle distinct
关键字: distinct的一些杂谈
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:
table ......
众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考。
假设我们有一个表Student,包括以下字段与数据:
drop table student;
create table student
(
id int primary key,
name nvarchar2(50) not null,
score number not null
);
insert into ......