我的任务是创建一些表,并使用PL/SQL匿名块向其中插入数据。我可以创建表,但我终生无法弄清楚如何插入数据。我尝试过的每一种方法都会以某种方式引发错误。目前,我有以下代码:
DECLARE
create_student VARCHAR2(500) := 'CREATE TABLE student(stu_id CHAR(5),Lname VARCHAR2(10) NOT NULL,Fname VARCHAR2(10) NOT NULL,Mi VARCHAR(2),Sex CHAR(1),Major VARCHAR(10),Home_State VARCHAR(4),CONSTRAINT stu_id_pk PRIMARY KEY (stu_id))';
create_course VARCHAR(500) := 'CREATE TABLE course(course_id VARCHAR(8),section CHAR(3)NOT NULL,c_name VARCHAR(30)NOT NULL,c_description VARCHAR(50),CONSTRAINT course_id_pk PRIMARY KEY (course_id))';
create_student_course VARCHAR(300) := 'CREATE TABLE student_course(stu_id CHAR(5),course_id VARCHAR(8),section CHAR(3),CONSTRAINT ck_stuid_courseid PRIMARY KEY (stu_id, course_id))';
insert_student VARCHAR2(1200) := 'INSERT ALL
INTO student VALUES(‘10011’, ‘Smith’, ‘Peter’, ‘M’, ‘M’, ‘Math’, ‘TX’)
INTO student VALUES(‘10012’, ‘Jones’, ‘Sam’, ‘A’, ‘M’, ‘English’, ‘TX’)
INTO student VALUES(‘10013’, ‘Peters’, ‘Amy’, ‘A’, ‘F’, ‘English’, ‘ME’)
INTO student VALUES(‘10014’, ‘Johnson’, ‘John’, ‘J’, ‘M’, ‘CompSci’, ‘CA’)
INTO student VALUES(‘10015’, ‘Penders’, ‘Alton’, ‘P’, ‘F’, ‘Math’, ‘GA’)
INTO student VALUES(‘10016’, ‘Allen’, ‘Diane’, ‘J’, ‘F’, ‘Geography’, ‘Minn’)
INTO student VALUES(‘10017’, ‘Gill’, ‘Jennifer’, ‘‘, ‘F’, ‘CompSci’, ‘TX’)
INTO student VALUES(‘10018’, ‘Johns’, ‘Roberta’, ‘‘, ‘F’, ‘CompSci’, ‘TX’)
INTO student VALUES(‘10019’, ‘Wier’, ‘Paul’, ‘‘, ‘M’, ‘English’, ‘TX’)
SELECT * FROM dual';
BEGIN
EXECUTE IMMEDIATE create_student;
EXECUTE IMMEDIATE create_course;
EXECUTE IMMEDIATE create_student_course;
EXECUTE IMMEDIATE insert_student;
END;
/SQL开发人员给我这份错误报告:
Error report -
ORA-00955: name is already used by an existing object
ORA-06512: at line 17
00955. 00000 - "name is already used by an existing object"
*Cause:
*Action:任何帮助都将不胜感激。我在这方面已经有一段时间了,即使是在甲骨文这本书上,我似乎也不能理解它。
发布于 2021-02-27 02:57:13
我想通了。是注释掉表create executes和使用q'‘表示字符串文字的组合。
https://stackoverflow.com/questions/66390761
复制相似问题