我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

oracle怎么返回字典 返回字典的值

oracle索引的数据字典

如果没记错的话,insert和delete操作应该会直接变更该视图的信息。

创新互联公司业务包括:成品网站、企业产品展示型网站建设、高端网站设计、电子商务型网站建设、外贸营销网站建设(多语言)、商城建设、按需定制制作、网络营销推广等。效率优先,品质保证,用心服务是我们的核心价值观,我们将继续以良好的信誉为基础,秉承稳固与发展、求实与创新的精神,为客户提供更全面、更优质的互联网服务!

distinct_keys来自于IND$的DISTKEY字段,唯一键值的数量。

num_rows则是来自于IND$的ROWCNT字段,记录的数量(行数)

比较一下唯一键的数量和表中的行数,就可以判断索引的选择性。选择性越高,索引返回的数据就越少。索引的选择性可以帮助基于代价的优化器来判断执行途径。

oracle 数据字典使用,请举哈实例代码!谢谢!!!

字典怎么使用,那得建立在你对字典的了解上。

比如你可以在 select*from user_source中查看所有的数据库代码,方便你查看某一张表是在哪里被插入数据,被哪里被应用。

dba_tab_cols中可以看出一个表有哪些字段,每个字段的类型,以及其他信息。

通过一些字典表查看表占用的空间,表空间大小,剩余空间,。。等等。

oracle 10g 中执行了 delete from emp; 请问怎样将数据表内容恢复?

第一步,获得当前scn

select dbms_flashback.get_system_change_number from dual;

第二步,根据第三步返回的scn不停地尝试查询直到所有记录都存在为止。

select count(*) from t1 as of scn 10670000;--10670000为返回的scn

第三步,当第二步返回的值为所删除的记录数时执行

insert into t1 select * from t1 as of scn 10670000;

commite;

到此数据恢复完毕!

----------------------------------------------------------------------------------------------------

总结:

闪回查询可恢复较近的数据。

SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。

闪回查询无法恢复到表结构改变之前,因为闪回查询使用的当前的数据字典。

1、在oracle9i中闪回数据先要看是否设置了闪回功能,具体如何判断可根据步骤一来查看。

2、在数据成功闪回后一定要先检验数据质量这个是很重要的一步。

3、Flaslhback是9i推出的新特性,但9i只提供闪回查询;而10g提供了闪回查询(Flashback Query)、闪回表(Flashback Table)以及闪回数据库(Flashback Database)等更强大的功能。

可以直接查询该表半天左右前的数据情况

select * from t1 as of timestamp sysdate-1/2;

比较两集合不同找出不同数据

select * from t1 as of timestamp sysdate-1/2

minus select * from t1;

但是在某些情况下,建议使用as of scn的方式执行flashback query,比如需要对多个相互有主外键约束的表进行恢复时,如果使用as of timestamp的方式,可能会由于时间点不统一的缘故造成数据选择或插入失败,通过scn方式则能够确保记录的约束一致性

求大神帮写一个ORACLE自定义函数。 字符串是数据库表中一个字段Str,分隔符是逗号,艮据字典表返回内容

CREATE OR REPLACE FUNCTION f_search_dic_a(p_str VARCHAR2)

RETURN VARCHAR2

IS

l_result VARCHAR2(4000);

l_dic_a_str VARCHAR2(100);

l_code VARCHAR2(10);

l_length NUMBER;

l_start_position NUMBER := 1;

l_seperator_position NUMBER;

BEGIN

l_length := length(p_str);

LOOP

l_dic_a_str := NULL;

l_code := NULL;

l_seperator_position := INSTR(p_str, ',', l_start_position);

EXIT WHEN l_seperator_position = 0;

l_code := SUBSTR(p_str, l_start_position, l_seperator_position-l_start_position);

SELECT value

INTO l_dic_a_str

FROM dic_a

WHERE code = l_code;

l_result := l_result || l_dic_a_str;

l_start_position := l_seperator_position + 1; END LOOP;

l_code := SUBSTR(p_str, l_start_position, l_length-l_start_position+1);

SELECT value

INTO l_dic_a_str

FROM dic_a

WHERE code = l_code;

l_result := l_result || l_dic_a_str;

RETURN l_result;

END;

/

这是测试结果

SQL select f_search_dic_a('02,05,06,08,10,00') from dual;

F_SEARCH_DIC_A('02,05,06,08,10

--------------------------------------------------------------------------------

贰伍陆捌拾零

再给两个测试

SQL select f_search_dic_a('02,05,零,零,06,08,10,00') from dual;

F_SEARCH_DIC_A('02,05,零,零,06

--------------------------------------------------------------------------------

贰伍〇〇陆捌拾零

SQL select f_search_dic_a('01,零,03,07,02,04,零,04,03,01') from dual;

F_SEARCH_DIC_A('01,零,03,07,02

--------------------------------------------------------------------------------

壹〇叁柒贰肆〇肆叁壹

如何导出oracle的数据字典

-- 查询某表的数据字典

SELECT A.TABLE_NAME AS 表名,A.COLUMN_NAME AS 字段名,

DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),

A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as 字段类型1,A.DATA_TYPE AS 字段类型,A.DATA_PRECISION AS 有效位,A.DATA_SCALE AS 精度值,

A.CHAR_LENGTH AS 字段长度,A.NULLABLE AS 能否为空

FROM sys.user_tab_columns A where A.table_name = 'TAM_ADDRESS'

-- 具有dba权限用户导出数据字典

SELECT A.TABLE_NAME AS 表名,A.COLUMN_NAME AS 字段名,

DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),

A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as 字段类型,A.DATA_DEFAULT AS 默认值,

A.NULLABLE AS 能否为空,B.comments AS 备注

FROM sys.all_tab_columns A,sys.DBA_COL_COMMENTS B

WHERE A.owner=B.owner AND A.table_name=B.table_name AND A.COLUMN_NAME=B.COLUMN_NAME AND A.owner='guoqiang' AND

A.TABLE_NAME IN (

'TB_SUBJECT', 'TB_SUBJECT_BALANCE', 'TB_VOUCHER', 'TB_VOUCHER_DETAILS',

'TB_CUSTOMER', 'TB_VOUCHER_CLASSIFY_MODE', 'TB_VOUCHER_TYPE', 'TB_ASSET',

'TB_ASSET_CATALOG', 'TB_M_DM_ASSETS_LIABI_RPT', 'TB_M_DM_PROFIT_RPT',

'TB_M_DM_REVENUE_RPT', 'TB_M_DM_COST_RPT')ORDER BY A.TABLE_NAME

SELECT A.TABLE_NAME AS 表名,A.COLUMN_NAME AS 字段名,

DECODE(A.CHAR_LENGTH,0,DECODE(A.DATA_SCALE,NULL,A.DATA_TYPE,A.DATA_TYPE||'('||A.DATA_PRECISION||','||A.DATA_SCALE||')'),

A.DATA_TYPE||'('||A.CHAR_LENGTH||')') as 字段类型,A.DATA_DEFAULT AS 默认值,

A.NULLABLE AS 能否为空,B.comments AS 备注

FROM sys.user_tab_columns A,sys.user_col_comments B

WHERE A.table_name=B.table_name AND A.COLUMN_NAME=B.COLUMN_NAME AND

A.TABLE_NAME IN (

'TB_SUBJECT', 'TB_SUBJECT_BALANCE', 'TB_VOUCHER', 'TB_VOUCHER_DETAILS',

'TB_CUSTOMER', 'TB_VOUCHER_CLASSIFY_MODE', 'TB_VOUCHER_TYPE', 'TB_ASSET',


分享题目:oracle怎么返回字典 返回字典的值
转载注明:http://mswzjz.cn/article/hpehhe.html

其他资讯