oracle查询字段值长度 怎么查询table字段长度

oracle 查询表名以及表的列名
字体:[ ] 类型:转载 时间:
oracle 查询表名以及表的列名的代码。
1.查询表名:
代码如下:select table_name,tablespace_name,temporary from user_tables [where table_name=表名] 其中:table_name:表名(varchar2(30)); tablespace_name:存储表名的表空间(varchar2(30)); temporary:是否为临时表(varchar2(1))。 eg: select table_name,tablespace_name,temporary from user_tables where table_name='TEST_TEMP'; 结果: -------------------------------------------------------------------------------- table_name tablespace_name temporary TEST_TEMP SDMP N -------------------------------------------------------------------------------- 注:表名变量值必须大写。 2.查询表列名:
代码如下:select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名]; 其中:column_name:列名(varchar2(30)); data_type:列的数据类型(varchar2(106)); data_length:列的长度(number); eg:select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns where table_name='TEST_TEMP'; 结果: -------------------------------------------------------------------------------- column_name data_type data_length data_precision data_scale ID NUMBER 22 0 NAME NVARCHAR2 20 SEX CHAR 1 GRADE NVARCHAR2 10 -------------------------------------------------------------------------------- 注:表名变量值必须大写。 另外,也可以通过 all_tab_columns来获取相关表的数据。 eg:select * from all_tab_columns where table_name='TEST_TEMP';
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具查询Oracle 数据库中带有lob字段的某一个表的大小_数据库技术_Linux公社-Linux系统门户网站
你好,游客
查询Oracle 数据库中带有lob字段的某一个表的大小
来源:Linux社区&
作者:msdnchina
注意:由于lob字段有独立的lob segment来存储,故对于带有lob字段的表,不能仅仅查询dba_segments.
以下脚本来自:
How to Compute the Size of a Table containing Outline CLOBs and BLOBs[Article ID ]
--------------------------------------------------------------------------------
Linux-6-64下安装 12C笔记
在 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
--------------------------------------------------------------------------------
经过修改:改为了NVL(SUM(S.BYTES),0)
SQL& col "TOTAL TABLE SIZE" format 99
---注意:以下sql可以直接执行。为了方便复制该脚本,因此不贴SQL语句的log,而是放上了执行时的SQL语句。
(SELECT NVL(SUM(S.BYTES),0) -- The Table Segment size
FROM DBA_SEGMENTS S
WHERE S.OWNER = UPPER('LC0019999') AND
(S.SEGMENT_NAME = UPPER('ZWPZK'))) +
(SELECT NVL(SUM(S.BYTES),0) -- The Lob Segment Size
FROM DBA_SEGMENTS S, DBA_LOBS L
WHERE S.OWNER = UPPER('LC0019999') AND
(L.SEGMENT_NAME = S.SEGMENT_NAME AND L.TABLE_NAME = UPPER('ZWPZK') AND L.OWNER = UPPER('LC0019999'))) +
(SELECT NVL(SUM(S.BYTES),0) -- The Lob Index size
FROM DBA_SEGMENTS S, DBA_INDEXES I
WHERE S.OWNER = UPPER('LC0019999') AND
(I.INDEX_NAME = S.SEGMENT_NAME AND I.TABLE_NAME = UPPER('ZWPZK') AND INDEX_TYPE = 'LOB' AND I.OWNER = UPPER('LC0019999')))
"TOTAL TABLE SIZE"
FROM DUAL;
TOTAL TABLE SIZE
----------------
SQL select /24
--------------------------
更多Oracle相关信息见 专题页面
本文永久更新链接地址:
相关资讯 & & &
& (11/08/:39)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&查看Oracle中表所有字段的字节总长度
在上一篇文章中,
查看Oracle中表的简要列属性信息。利用上面的SQL语句,可以改进出来统计表所占物理存储空间大小的语句。
在Oracle中number数字类型所占的空间,计算公式为:
number(p,s) 占用的字节数为: floor( ( p + 1& ) / 2 ) + 1
select object_name,sum(decode(data_type,&#39;NUMBER&#39;,floor((col_length+1)/2) + 1,col_length)) table_size
& (select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length
&&&&& (select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale
&&&&&&& from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
&&&&&&&&& where o.obj#=t.obj#
&&&&&&&&&&& and o.name=c.table_name
&&&&&&&&&&& and c.owner=u.name
&&&&&&&&&&& and o.owner#=u.user#
&&&&&&&&&&& and u.name=&#39;SCOTT&#39;
&&&&&&&&&&& /*and o.name=&#39;EMP&#39;*/
&&&&&&&&&& ) tab_cols
&& ) col_len
group by object_
上面的SQL语句统计用户scott的所有表占用的物理空间的字节数。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-
&- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
&- 转载务必注明原始出处 :
&- 关键字:oracle table storage 表字段 占用空间大小
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&-
本文链接地址:;
本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
转载务必注明原始出处 : ;
对《》有何疑问或见解,请在本文下方发表;
对网站还有其他问题或建议,请提交在,谢谢!
相关文章 --
目前还没有任何评论.
[83,849][60,304][28,513][22,308][18,276][18,137][16,828][16,809][16,075][15,746]
Linux-Links
SYBASE-LinksORACLE如何查询字符串的真正长度
数据库ORACLE 9i 我在使用PL/SQL 处理数据时遇到一个问题,请大家帮忙解决一下。 &#160;我要将表A中的内容插入B表,两表的结构分别为:A表 xm &#160;varchar2(10),sfzh varchar2(19) &#160;;B表 xm varchar2(10),sfzh varchar2(18) 。在使用select length(sfzh) from A group by length(sfzh);查询时,length(sfzh)没有大于18的,但我在使用insert into B(xm,sfzh) select xm,sfzh from A;从A表向B表插入数据时,系统提示“ORA-01401: 插入的值对于列过大”点‘ok’按钮后,光标定位在A表的sfzh字段。我用EDIT修改A表sfzh字段长度改为18时,提示“ORA-01441: 无法减小列长度,因为一些值过大”,请问,有什么办法可以查出A表中哪些记录的sfzh字段值过大?
09-12-26 &
create or replace procedure p_temp_c(c1 in varchar2, c2 in varchar2) is &#160;str &#160;varchar2(200); &#160;str1 varchar2(200); &#160;str2 varchar2(200); &#160;str3 varchar2(200); &#160;str4 varchar2(200);begin &#160;str1 := utl_raw.cast_to_raw(c1); &#160;str2 := utl_raw.cast_to_raw(c2); &#160;str3 := length(c1); &#160;str4 := length(c2); &#160;select decode(sign(str1 - str2), &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;1, &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;utl_raw.cast_to_varchar2(str1), &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;utl_raw.cast_to_varchar2(str2)) &#160; &#160;into str &#160; &#160; &#160;dbms_output.put_line(&#39;c1的长度:&#39; || str3); &#160;dbms_output.put_line(&#39;c2的长度:&#39; || str4); &#160;dbms_output.put_line(&#39;较大的是:&#39; || str); .
请登录后再发表评论!
oracle 9i中闪回查询操作实例进行闪回查询必须设置自动回滚段管理,在init.ora设置参数undo_management=auto,参数undo_retention=n,决定了能往前闪回的最大时间,值越大就需要越多undo空间。例:oracle 9i的flashback query操作。(1)创建闪回查询用户sql& create user flashtest ide sql& grant connect, r sql& grant execute on dbms_fl sql& connect flashtest/(2)创建测试表,插入测试记录sql& create table test(id number(3)); sql& insert into test values (1); sql& insert into test values(2); sql& sql& create table rec_date(date_scn);通过以上的操作,我们插入了两条记录,并删除了其中一条记录。在以下的操作中,我们将通过flashback query找到删除的记录(4)闪回查询sql& declare restore_ begin select date_scn into restore_scn from rec_ dbms_flashback.enable_at_time (restore_scn);
sql& select * id12可以看出,虽然删除记录并提交,但是通过闪回操作,仍能查询到删除前的两条记录。需要注意 oracle每5分钟记录一次scn,并将scn和对应时间的映射进行纪录。如果原来插入的记录到做闪回操作的时间在5分钟之内,用基于时间的闪回查询可能得不到记录,因为基于时间点的查询实际上是转化为最近的一次scn,然后从这个scn开始进行恢复。因此,如果需要精确的查询可以采用基于scn的闪回查询,可精确闪回到需要恢复的时间。可以通过dbms_flashback.get_system_change_number语句获取scn。
请登录后再发表评论!

我要回帖

更多关于 oracle 修改字段长度 的文章

 

随机推荐