oracle 数据字典使用,请举哈实例代码!谢谢?。。?/h2>字典怎么使用,那得建立在你对字典的了解上 。
比如你可以在 select*from user_source中查看所有的数据库代码,方便你查看某一张表是在哪里被插入数据,被哪里被应用 。
dba_tab_cols中可以看出一个表有哪些字段 , 每个字段的类型,以及其他信息 。
通过一些字典表查看表占用的空间,表空间大小 , 剩余空间,。。等等 。
oracle索引的数据字典如果没记错的话,insert和delete操作应该会直接变更该视图的信息 。
distinct_keys来自于IND$的DISTKEY字段 , 唯一键值的数量 。
num_rows则是来自于IND$的ROWCNT字段 , 记录的数量(行数)
比较一下唯一键的数量和表中的行数,就可以判断索引的选择性 。选择性越高,索引返回的数据就越少 。索引的选择性可以帮助基于代价的优化器来判断执行途径 。
求大神帮写一个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_position1;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;
/
这是测试结果
SQLselect 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的数据字典-- 查询某表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 10g 中执行了 delete from emp; 请问怎样将数据表内容恢复?第一步,获得当前scn
select dbms_flashback.get_system_change_number from dual;
第二步oracle怎么返回字典,根据第三步返回oracle怎么返回字典的scn不停地尝试查询直到所有记录都存在为止 。
select count(*) from t1 as of scn 10670000;--10670000为返回的scn
第三步,当第二步返回的值为所删除的记录数时执行
insert into t1 select * from t1 as of scn 10670000;
commite;
到此数据恢复完毕!
----------------------------------------------------------------------------------------------------
总结oracle怎么返回字典:
闪回查询可恢复较近的数据 。
SCN(系统改变号),它的英文全拼为:System Change Number,它是数据库中非常重要的一个数据结构 。SCN 是 Oracle 内部的时钟机制,Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制 。
闪回查询无法恢复到表结构改变之前,因为闪回查询使用的当前的数据字典 。
1、在oracle9i中闪回数据先要看是否设置了闪回功能,具体如何判断可根据步骤一来查看 。
2、在数据成功闪回后一定要先检验数据质量这个是很重要的一步 。
3、Flaslhback是9i推出的新特性,但9i只提供闪回查询oracle怎么返回字典;而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怎么返回字典 oracle 返回结果集】关于oracle怎么返回字典和oracle 返回结果集的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- sqlserver2005使用教程,sql2005怎么使用
- 战地一射击游戏怎么开,战地一怎么调射击模式
- 苹果直播运营助理,直播运营助手是什么
- oracle怎么看多少位 如何查看oracle_sid
- VB.NET删除txt文件所有内容的简单介绍
- 快手支持苹果什么拍摄软件,快手支持苹果什么拍摄软件好
- 快手直播中怎么关注小店,快手直播间怎么关注
- vb.net点乘 vb中的乘号怎么打
- 微信视频号改名认证审核,微信视频号观看身份改名