关于create table as 的问题,如何加一个integer型的字段

SeaBirds 2008-08-29 11:15:28
我有一个表T1,想另建一个表T2同T1结构一样(不要数据),但加一个integer字段f1
create table t2 as
select a.*,1 as f1 from t1 a where 1=0
但这样建出来的t2的类型是number类型,不知如何才能让它是integer类型呢,不能用alter,因为我是用execute immediate来运行的,用alter要加权限才行
...全文
206 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
photon17 2012-04-11
  • 打赏
  • 举报
回复
这是什么机制
SeaBirds 2008-09-01
  • 打赏
  • 举报
回复
3楼的方法不错
谢谢
oracledbalgtu 2008-08-29
  • 打赏
  • 举报
回复

通过一个过渡表就可以,方法如下(如果t1表自己就有int类型的列的话,就可以不用过渡表):
CREATE TABLE c(a INT);
CREATE TABLE t2 AS SELECT t1.*,c.a f1
FROM t1,c WHERE 1=0;


--如果t1自己有int列的情况:
CREATE TABLE t2 AS SELECT t1.*,t1.int列 f1
FROM t1 WHERE 1=0;



[Quote=引用楼主 SeaBirds 的帖子:]
我有一个表T1,想另建一个表T2同T1结构一样(不要数据),但加一个integer字段f1
create table t2 as
select a.*,1 as f1 from t1 a where 1=0
但这样建出来的t2的类型是number类型,不知如何才能让它是integer类型呢,不能用alter,因为我是用execute immediate来运行的,用alter要加权限才行
[/Quote]
雨男 2008-08-29
  • 打赏
  • 举报
回复
INTEGER是ANSI Datatypes,在Oracle中会自动转换为NUMBER型的
bugchen888 2008-08-29
  • 打赏
  • 举报
回复
楼上的方法巧妙, 学习了.

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧