新手,转成Oracle代码

juxianxiang 2010-03-11 08:56:50
CREATE TABLE Deparment(
[id] [int] IDENTITY(1,1) NOT NULL,
[businessid] [int] NULL,
[communicateid] [int] NULL,
[time] [datetime] NULL,
[title] [varchar](300),
[contents] [text],
CONSTRAINT [PK_Deparment] PRIMARY KEY CLUSTERED
(
[id] ASC
)

就是id为主键,自动增长;
text,varchar(300),varchar(max),datetime等在oracale对应为什么?多谢!
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2010-03-11
  • 打赏
  • 举报
回复
long不推荐使用了,使用clob吧,oracle保留只为了兼容。
oracle自动增长比较麻烦一点,需要建一个序列,并在插入数据中引用此序列(也可在触发器中引用)

1、创建表
CREATE TABLE Deparment
(
id number primary key,
businessid number,
communicateid number,
time date,
title varchar2 (300),
contents varchar2 (4000)
);
--contents如果不超过4000,最好用varchar2吧,如果超过,可用clob

2、创建序列
create sequence seq_id start with 1 increment by 1;

3、插入数据
INSERT INTO Deparment
(id, businessid, communicateid, TIME, title, contents)
VALUES
(seq_id.nextval, 1, 1, SYSDATE, 'test', 'hello world!');
sorry0481 2010-03-11
  • 打赏
  • 举报
回复
引用 1 楼 suiziguo 的回复:
text -> long or clob

varchar(300) -> varchar2(300)

varchar(max)-> varchar2(4000)

datetime -> date


学习了,原来text还可以用long,我一直用clob,奢侈了呀
iqlife 2010-03-11
  • 打赏
  • 举报
回复
就是id为主键,自动增长;
用SEQUENCE实现,或者用表触发器,
表触发器可以参考我的BLOG
http://blog.csdn.net/java3344520/archive/2009/11/30/4907591.aspx
Phoenix_99 2010-03-11
  • 打赏
  • 举报
回复
create table department(
id number(10) primary key not null,businessid number(10),datetime date,time varchar2(300),contents varchar2(10000))
create sequence dep_seq increment by 1 start with 1
juxianxiang 2010-03-11
  • 打赏
  • 举报
回复
转换一下呢,还是不会转化
suiziguo 2010-03-11
  • 打赏
  • 举报
回复
text -> long or clob

varchar(300) -> varchar2(300)

varchar(max)-> varchar2(4000)

datetime -> date

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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