这里涉及到两个系统视图的应用dba_tab_cols和user_tab_cols;
dba_tab_cols包含所有用户下表字段信息;user_tab_cols包含当前用户下表信息;使用tba_tab_clos查询表字段类型需要指定owner(用户)
上述两个表中,table_name,column_name,data_type就可以满足需要查询表字段类型了,具体类型对应其他字段还有另外定义,比如varchar2,date,number还对应在data_length字段有值,说明类型其长度
user_tab_columns和user_tab_cols都可以满足问题要求,但是两张视图还是有区别的,主要是包含字段的区别等,具体区别可以度娘哈,这里就不赘述。
1、首先在使用的电脑上,添加想要查询数据库的服务和监听,通过Oracle客户端管理工具中的Net Manager来完成。
2、创建两个数据库的连接---DBLink,可以通过指令完成,也可以通过图形界面完成。
3、在Oracle管理工具中开启一个新的SQL windows窗口,测试 *** 作我们连接的异地Oracle数据库。
4、编写一个查询语句来测试,这里做一个select *** 作。
5、最后运行,如下图可以看到查询结果。
CREATE TABLE test (
username VARCHAR(20),
starttime VARCHAR(14),
endtime VARCHAR(14)
);
INSERT INTO test
SELECT 'zhangsan', '20130305080000', '20130305100000' FROM dual UNION ALL
SELECT 'zhangsan', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT 'lisi', '20130305060000', '20130305110000' FROM dual UNION ALL
SELECT 'lisi', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT '王五1', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT '王五1', '20130305060000', '20130305080000' FROM dual UNION ALL
SELECT '王五2', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT '王五2', '20130305070000', '20130305080000' FROM dual UNION ALL
SELECT '王五3', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT '王五3', '20130305060000', '20130305100000' FROM dual UNION ALL
SELECT '王五4', '20130305070000', '20130305090000' FROM dual UNION ALL
SELECT '王五4', '20130305070000', '20130305100000' FROM dual UNION ALL
SELECT '赵六1', '20130305060000', '20130305100000' FROM dual UNION ALL
SELECT '赵六1', '20130305070000', '20130305080000' FROM dual UNION ALL
SELECT '赵六2', '20130305060000', '20130305100000' FROM dual UNION ALL
SELECT '赵六2', '20130305060000', '20130305080000' FROM dual UNION ALL
SELECT '赵六3', '20130305060000', '20130305100000' FROM dual UNION ALL
SELECT '赵六3', '20130305070000', '20130305110000' FROM dual UNION ALL
SELECT '赵六4', '20130305060000', '20130305100000' FROM dual UNION ALL
SELECT '赵六4', '20130305060000', '20130305110000' FROM dual;
COLUMN "USERNAME" FORMAT A8
COLUMN "STARTTIME" FORMAT A15
COLUMN "ENDTIME" FORMAT A15
SELECT
FROM
test Main
WHERE
EXISTS (
SELECT 1
FROM
test Sub
WHERE
Mainusername = Subusername
AND NOT ( MainSTARTTIME = SubSTARTTIME AND MainENDTIME = SubENDTIME)
AND (
-- 首先判断 第一种情况
-- 时间段1:----------+=====+-----
-- 时间段2:--------+====+--------
-- 或者
-- 时间段1:----------+=====+-----
-- 时间段2:----------+====+--------
-- 或者
-- 时间段1:----------+=====+-----
-- 时间段2:--------+==========+--
-- 或者
-- 时间段1:----------+=====+-----
-- 时间段2:----------+==========+--
(
SubStartTime <= MainStartTime
AND SubEndTime > MainStartTime
)
OR
-- 然后判断第二种情况
-- 时间段1:------+=========+-----
-- 时间段2:--------+====+--------
-- 或者
-- 时间段1:------+=========+-----
-- 时间段2:------+====+--------
-- 或者
-- 时间段1:------+=========+-----
-- 时间段2:--------+==========+--
-- 或者
-- 时间段1:------+=========+-----
-- 时间段2:------+==========+--
(SubStartTime >= MainStartTime
AND SubStartTime < MainEndTime
)
)
);
查看那些库的话必须用dba权限登录。登陆后可以通过下面的方法来查看。
一、查看有哪些库,你的库理解不准确,应该准确来说是表空间,可以通过下面的命令来实现
SELECT Totalname "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sysdba_free_space
group by tablespace_name
) Free,
(select bname, sum(bytes/1024/1024) TOTAL_SPACE
from sysv_$datafile a, sysv_$tablespace B
where ats# = bts#
group by bname
) Total
WHERE FreeTablespace_name = Totalname
二、查看有哪些表。
select table_name from dba_tables where owner='A';
以上就是关于查询Oracle数据库表字段类型sql语句全部的内容,包括:查询Oracle数据库表字段类型sql语句、oracle怎样查询两个表格中的全部数据、ORACLE数据库查询语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)