如题 !! 我现在在做一个在线选课系统,十分着急!!
我现在有几个表 分别带有主键和外键的。我在课程信息表里插入新课程和删除某一课程,
我的表结果是这样的: 课程信息表: cno是主键 ,tno是外键
CREATE TABLE "WWJ"."COURSE_INFO"
( "CNO" VARCHAR2(10) NOT NULL ENABLE,
"CNAME" NVARCHAR2(10) NOT NULL ENABLE,
"CINTRO" NVARCHAR2(200) NOT NULL ENABLE,
"CHOUR" NVARCHAR2(10) NOT NULL ENABLE,
"CREDIT" NVARCHAR2(4) NOT NULL ENABLE,
"PATTERN" NVARCHAR2(10) NOT NULL ENABLE,
"TNO" VARCHAR2(10),
"CTIME" NVARCHAR2(30),
"CLIMITNUM" NVARCHAR2(10),
"CLIMITGRADE" NVARCHAR2(4),
"CADDRESS" NVARCHAR2(30), )
带有名字的主键和外键
CONSTRAINT "C_PK" PRIMARY KEY ("CNO")
CONSTRAINT "T_FP" FOREIGN KEY ("TNO")
教师信息表:CREATE TABLE "WWJ"."COURSE_INFO"
( "CNO" VARCHAR2(10) NOT NULL ENABLE,
"CNAME" NVARCHAR2(10) NOT NULL ENABLE,
"CINTRO" NVARCHAR2(200) NOT NULL ENABLE,
"CHOUR" NVARCHAR2(10) NOT NULL ENABLE,
"CREDIT" NVARCHAR2(4) NOT NULL ENABLE,
"PATTERN" NVARCHAR2(10) NOT NULL ENABLE,
"TNO" VARCHAR2(10),
"CTIME" NVARCHAR2(30),
"CLIMITNUM" NVARCHAR2(10),
"CLIMITGRADE" NVARCHAR2(4),
"CADDRESS" NVARCHAR2(30), ) 带有名字的主键T_PK (tno)现在要在课程信息表里添加新的课程怎么加啊 我是这样写的:insert into course_info (?,?,?,?) values(*,*,*)(为了方便简化了,反正就是插入语句 ,可是插入不成功 老是提示说有约束条件那我要是删除某一课程的数据怎么写啊 就是根据主键cno来删除!求高人帮忙啊 我25号之前的把代码调出来啊!!!PS:我想在数据库里更新数据 也是出问题 就是编码问题 我用的是jsp+servlet+oracle写的不知哪位高人会的,顺便指点迷津啊:我上网查了很多编码跟oracle连接的编码问题,我是这样写的:try {
//带问号的是传进来的参数是中文的 我检查过了,在连接数据库之前没有出现乱码
pr = conn
.prepareStatement("update course_info set cname=?,chour=?,pattern=?," +
"climitgrade=?,climitnum=?,ctime=?,caddress=? where cno=?");
// pStmt.setString(1,new String(cname.getBytes(),"gb2312")); pr.setString(1, new String(cname.getBytes("ISO8859"),"utf-8"));
pr.setString(2, new String(chour.getBytes("ISO8859"),"utf-8"));
pr.setString(3, new String(pattern.getBytes("ISO8859"),"utf-8"));
pr.setString(4, new String(climitgrade.getBytes("ISO8859"),"utf-8"));
pr.setString(5, new String(climitnum.getBytes("ISO8859"),"utf-8"));
pr.setString(6, new String(ctime.getBytes("ISO8859"),"utf-8"));
pr.setString(7, new String(caddress.getBytes("ISO8859"),"utf-8"));
pr.setString(8, new String(cno.getBytes("ISO8859"),"utf-8") );
flag = pr.executeUpdate();这样写不多吗?
我现在有几个表 分别带有主键和外键的。我在课程信息表里插入新课程和删除某一课程,
我的表结果是这样的: 课程信息表: cno是主键 ,tno是外键
CREATE TABLE "WWJ"."COURSE_INFO"
( "CNO" VARCHAR2(10) NOT NULL ENABLE,
"CNAME" NVARCHAR2(10) NOT NULL ENABLE,
"CINTRO" NVARCHAR2(200) NOT NULL ENABLE,
"CHOUR" NVARCHAR2(10) NOT NULL ENABLE,
"CREDIT" NVARCHAR2(4) NOT NULL ENABLE,
"PATTERN" NVARCHAR2(10) NOT NULL ENABLE,
"TNO" VARCHAR2(10),
"CTIME" NVARCHAR2(30),
"CLIMITNUM" NVARCHAR2(10),
"CLIMITGRADE" NVARCHAR2(4),
"CADDRESS" NVARCHAR2(30), )
带有名字的主键和外键
CONSTRAINT "C_PK" PRIMARY KEY ("CNO")
CONSTRAINT "T_FP" FOREIGN KEY ("TNO")
教师信息表:CREATE TABLE "WWJ"."COURSE_INFO"
( "CNO" VARCHAR2(10) NOT NULL ENABLE,
"CNAME" NVARCHAR2(10) NOT NULL ENABLE,
"CINTRO" NVARCHAR2(200) NOT NULL ENABLE,
"CHOUR" NVARCHAR2(10) NOT NULL ENABLE,
"CREDIT" NVARCHAR2(4) NOT NULL ENABLE,
"PATTERN" NVARCHAR2(10) NOT NULL ENABLE,
"TNO" VARCHAR2(10),
"CTIME" NVARCHAR2(30),
"CLIMITNUM" NVARCHAR2(10),
"CLIMITGRADE" NVARCHAR2(4),
"CADDRESS" NVARCHAR2(30), ) 带有名字的主键T_PK (tno)现在要在课程信息表里添加新的课程怎么加啊 我是这样写的:insert into course_info (?,?,?,?) values(*,*,*)(为了方便简化了,反正就是插入语句 ,可是插入不成功 老是提示说有约束条件那我要是删除某一课程的数据怎么写啊 就是根据主键cno来删除!求高人帮忙啊 我25号之前的把代码调出来啊!!!PS:我想在数据库里更新数据 也是出问题 就是编码问题 我用的是jsp+servlet+oracle写的不知哪位高人会的,顺便指点迷津啊:我上网查了很多编码跟oracle连接的编码问题,我是这样写的:try {
//带问号的是传进来的参数是中文的 我检查过了,在连接数据库之前没有出现乱码
pr = conn
.prepareStatement("update course_info set cname=?,chour=?,pattern=?," +
"climitgrade=?,climitnum=?,ctime=?,caddress=? where cno=?");
// pStmt.setString(1,new String(cname.getBytes(),"gb2312")); pr.setString(1, new String(cname.getBytes("ISO8859"),"utf-8"));
pr.setString(2, new String(chour.getBytes("ISO8859"),"utf-8"));
pr.setString(3, new String(pattern.getBytes("ISO8859"),"utf-8"));
pr.setString(4, new String(climitgrade.getBytes("ISO8859"),"utf-8"));
pr.setString(5, new String(climitnum.getBytes("ISO8859"),"utf-8"));
pr.setString(6, new String(ctime.getBytes("ISO8859"),"utf-8"));
pr.setString(7, new String(caddress.getBytes("ISO8859"),"utf-8"));
pr.setString(8, new String(cno.getBytes("ISO8859"),"utf-8") );
flag = pr.executeUpdate();这样写不多吗?
解决方案 »
- 编译通过,运行报 undefined reference to 'sqlcxt(void**, unsigned*, sqlexd*, sqlcxp c
- oracle复杂函数该不该记
- Oracle11G,MEMORY_TARGET的设置问题,求大神指导
- java调用有更新blob字段的存储过程报找不到表的问题
- 在oracle中动态的修改全局临时表的表结构
- &&&&&一个sql查询的问题,麻烦各位看看,急!&&&&&
- 请问一个数据装载的问题:
- 求助!修改SHARE_POOL_SIZE的方法
- 在SQL语句中如何对NVARCHAR2和NCHAR插入值~?
- 在约束条件中 Primary Key 和 UNIQUE 都是非空唯一,那有何区别呢?
- 高分,高结贴率,Oracle job日志或run detail如何删除,在线等
- 求sql,内详
因为你的课程表COURSE_INFO里的TNO是外键,所以你插入到课程表中的教师编号必须在教师表中存在。
所以,应该先在教师表中插入相应编号的记录,然后才能在课程表中插入该教师的课程。SQL> create table teacher(tno varchar2(20) ,tname varchar2(20),constraint pk_tno primary key(tno));表已创建。SQL> create table course(cno varchar2(20),cname varchar2(20), tno varchar2(20),constraint fk_tno
2 foreign key (tno) references teacher(tno));表已创建。SQL>--向课程表先插入记录,教师T01现在还不存在
SQL> insert into course(cno,cname,tno) values('C01','高等数学','T01');
insert into course(cno,cname,tno) values('C01','高等数学','T01')
*
第 1 行出现错误:
ORA-02291: 违反完整约束条件 (C.FK_TNO) - 未找到父项关键字
SQL> insert into teacher(tno,tname) values('T01','张三');已创建 1 行。SQL> insert into course(cno,cname,tno) values('C01','高等数学','T01');已创建 1 行。SQL>
就是我想更新课程信息表里的数据 但是老是出现:can bind a LONG value only for insert into a LONG colum
--RA-01461:can bind a LONG value only for insert into a LONG colum
--"CINTRO" NVARCHAR2(200) NOT NULL ENABLE,将你的课程信息存放的值该大点
alter table COURSE_INFO modify cintro varchar2(1000) not null--要是想要删除课程号cno='000001' 的数据呢 这个课程号是存在的
删除失败呗!
这个问题
还有我的意思是要删除cno='000001' 的数据 ,怎么写sql语句才能正确删除啊
大多是由项目编码和数据库编码不一致造成的
看你的程序代码,你使用的是utf-8编码,你知道你是oracle数据是什么编码吗?
很有可能是编码不同造成的.