Oracle常用基础命令(2)

浏览: 1805

Oracle常用语句

 

-- 查看ORACLE 数据库中本用户下的所有表 
SELECT table_name FROM user_tables;

-- 查看ORACLE 数据库中所有用户下的所有表 
select user,table_name from all_tables;

-- 查看ORACLE 数据库中本用户下的所有列 
select table_name,column_name from user_tab_columns;

-- 查看ORACLE 数据库中本用户下的所有列 
select user,table_name,column_name from all_tab_columns;

-- 查看ORACLE 数据库中的序列号 
select * from user_sequences;

-- 上面的所有对象,都可以通过下面的SQL语句查询得到 
-- 查询所有的用户生成的ORACLE对象 
SELECT * FROM user_objects;

-- 查看ORACLE 数据库中所有表的注释 
select table_name,comments from user_tab_comments;

-- 查看ORACLE 数据库中所有列的注释 
select table_name,column_name,comments from user_col_comments;

-- 给表加ORACLE的注释 
COMMENT ON TABLE aa10 IS '系统参数表';

-- 给列加ORACLE的注释 
COMMENT ON COLUMN aa10.aaa100 IS '参数类别';

-- 查看表中列的属性,包括 数据类型,是否非空等 
DESC aa10;
-- 通过系统表,查看表中列的属性,包括 数据类型,是否非空等 
SELECT table_name,COLUMN_ID,column_name,data_type,data_length, DATA_PRECISION,NULLABLE
FROM user_tab_columns
ORDER BY table_name,COLUMN_ID;


-- 查看数据库中表、索引占用的数据库空间大小 
SELECT * FROM user_segments;

-- 查看所有表的记录数 
CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20));
-- 通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交 
select 'insert into table_count values('''||table_name||''', (select count(1) from '||table_name||'));//'||comments from user_tab_comments;
-- 所有表的记录都在table_count了 
SELECT * FROM table_count;

// 将ORACLE数据库的注释同步到PB中 代码开始 
DELETE FROM PBCATCOL WHERE PBC_TNAM LIKE '%';
DELETE FROM PBCATTBL WHERE PBT_TNAM LIKE '%';


INSERT INTO PBCATTBL
( PBT_TNAM,
PBT_OWNR ,
PBT_CMNT)
SELECT ALL_TAB_COMMENTS.TABLE_NAME,
ALL_TAB_COMMENTS.OWNER,
ALL_TAB_COMMENTS.COMMENTS
FROM ALL_TAB_COMMENTS
WHERE ALL_TAB_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';


// 同步字段名

INSERT INTO PBCATCOL
( PBC_TNAM,
PBC_OWNR,
PBC_CNAM,
PBC_LABL,
PBC_CMNT,
PBC_HDR)
SELECT ALL_COL_COMMENTS.TABLE_NAME,
ALL_COL_COMMENTS.OWNER,
ALL_COL_COMMENTS.COLUMN_NAME,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS
FROM ALL_COL_COMMENTS
WHERE ALL_COL_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';

COMMIT;
-- 将ORACLE数据库的注释同步到PB中 代码结束


--将PB注释同步到ORACLE中 
select 'comment on table '||pbt_tnam||' is '''||pbt_cmnt||''';' from pbcattbl where pbt_tnam not like 'PB%'
UNION
select 'comment on column '||pbc_tnam||'.'||pbc_cnam||' is '''||pbc_cmnt||''';' from pbcatcol where pbC_tnam not like 'PB%';


--查进程 
select object_id,session_id,locked_mode from v$locked_object;

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;

--杀进程 
alter system kill session '3,6666';

--查询一张表的所有列名

SELECT table_name, column_name, data_type

FROM all_tab_cols

WHERE table_name = 'LJP_IMP_CHARGE1201';

注意:表名一定要大写哦。在fsodsrd上,由于权限关系,我们只能访问user_tab_cols,也就是只能访问到本用户下的表。但是到了其他数据库,我们拥有访问all_tab_cols的权限,这个时候就能查到所有用户下的表。

推荐 0
本文由 面包君 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册