declare @ctype varchar declare @cname varchar use stu_cou create procedure @ctype varchar(20) @cname varchar(20) as begin select Cno,Cname,Ctype,Ccredit from Course where Ctype = @ctype and charindex (@cname,Cname)>0 end
时间: 2024-04-26 19:20:01 浏览: 15
这是一段 SQL 代码,用于创建一个存储过程。该存储过程的名称为 @ctype,@cname,它的功能是根据输入的课程类型和课程名称,从 Course 表中查询符合条件的课程信息(包括课程编号、课程名称、课程类型和学分)并返回结果集。其中 charindex (@cname,Cname)>0 表示查询条件中的课程名称必须包含 @cname。
相关问题
有语法错误吗CREATE OR REPLACE PROCEDURE zhengjy_proc_co () AS DECLARE zjy_stu_Cno VARCHAR(6) ; zjy_stu_Cname VARCHAR(20) ; zjy_cou_Credit DECIMAL( 5,1 ); CURSOR C IS SELECT zhengjy_Courses.zjy_Cno, zhengjy_Courses. zjy_Cname, zhengjy_Courses. zjy_Ccredit FROM zhengjy_Courses; BEGIN OPEN C; LOOP FETCH C INTO zjy_stu_Cno, zjy_stu_Cname, zjy_cou_Credit; EXIT WHEN C%NOTFOUND; RAISE info ' zjy_Cno: % , zjy_Cname: % , zjy_Credit: %' , zjy_stu_Cno, zjy_stu_Cname, zjy_cou_Credit; END LOOP; CLOSE C; END;
有语法错误。在Oracle中,应该使用以下格式定义存储过程的输入和输出参数:
```
CREATE OR REPLACE PROCEDURE zhengjy_proc_co AS
zjy_stu_Cno VARCHAR(6) ;
zjy_stu_Cname VARCHAR(20) ;
zjy_cou_Credit DECIMAL( 5,1 );
CURSOR C IS SELECT zhengjy_Courses.zjy_Cno, zhengjy_Courses. zjy_Cname, zhengjy_Courses. zjy_Ccredit FROM zhengjy_Courses;
BEGIN
OPEN C;
LOOP
FETCH C INTO zjy_stu_Cno, zjy_stu_Cname, zjy_cou_Credit;
EXIT WHEN C%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('zjy_Cno: ' || zjy_stu_Cno || ' , zjy_Cname: ' || zjy_stu_Cname || ' , zjy_Credit: ' || zjy_cou_Credit);
END LOOP;
CLOSE C;
END;
```
在Oracle中,使用DBMS_OUTPUT.PUT_LINE来输出信息到控制台。同时,应该以"||"来连接字符串和变量。
create trigger tr_insert on takes for insert as declare @sno varchar(5) declare @cno varchar(5) declare @credit numeric(3,0) select @sno=ID,@cno=course_id from inserted select @credit=credits from course where course_id=@cno update student set tot_cred=tot_cred+@credit where ID=@sno go
这是一个 SQL Server 数据库中的触发器,用于在 takes 表中插入数据时,更新 student 表中的 tot_cred 字段。具体来说,当在 takes 表中插入一条数据时,触发器会从 inserted 表中获取学生的 ID 和课程的 course_id,并从 course 表中获取该课程的学分 credits。然后,触发器会根据学生的 ID 和课程的学分更新 student 表中的 tot_cred 字段,以反映该学生现在已获得的总学分数。当所有更新完成后,触发器会结束执行。