最近在处理一个分表的问题时,需要为程序创建一个自动分表的存储过程,需要保证所有表结构,约束,索引等等一致,此外视图,存储过程,权限等等问题暂不用考虑. 在Mysql中,创建分表的存储过程,相当简单:create table if not exists <new_table_name> like <old_table_name>;即可,约束,索引一应俱全. 但是在Oracle中貌似没有,所以只能自己写,需要考虑的情况比较多,脚本如下: CREATE OR REPLACE PROCED
--查看oracle数据库的单个表结构 select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; 括号里面有两个参数,第一个参数是我们要查询的对象,这里查的是表结构,所以是'TABLE'. 第二个参数是我们要查的表的表名,这里的表名必须大写. 注意:执行完上面这条语句你可能只是看到整个建表语句的一部分,因此我们在执行命令的时候可以加上下面的语句: SQL> SET LONG 3000SQL> SET PAGESIZE 0SQL&
如果表结构只对应一个字段,可以 select col1 bulk collect into 变量,不用游标循环,简洁高效 create or replace function get_airway_subpoint(awid in number) return airway_subpnts_tab is --CREATE OR REPLACE TYPE AIRWAY_SUBPNTS_TAB as table of number(11) v_ptns airway_subpnts_tab; --
1.既复制表结构也复制表数据:CREATE TABLE tab_new AS SELECT * FROM tab_old; 2.只复制表结构:CREATE TABLE tab_new AS SELECT * FROM tab_old WHERE 1=2; 3.只复制表数据:insert into tab_new select * from tab_old; 或者SELECT vale1, value2 into tab_new from tab_old
oracle --------------------------------------- SELECT case when t.COLUMN_ID=1 then t.table_name end table_name, case when t.COLUMN_ID=1 then t2.comments end table_comments, t.COLUMN_ID,t.colUMN_NAME,t1.comments,case when t3.COLUMN_NAM
获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_ta
语句如下: SELECT t1.Table_Name AS "表名称",t3.comments AS "表说明", t1.Column_Name AS "字段名称",t1.Data_Type AS "数据类型",t1.Data_Length AS "长度",t1.NullAble AS "是否为空",t2.Comments AS "字段说明",t1.Data_Defa
转自:http://www.cnblogs.com/qingsong-do/archive/2011/11/29/2267244.html 获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where own