TASK : 定义PL / SQL表,哪些元素是记录。 Record结构应该与Subjects talbe相同。使用结果和增量索引启动新表的5个元素,从1开始。将值输入到每个记录中。打印(输出)输入的数据,以可读的方式描述它。
主题表格结构:
ID NUMBER(3),//主键
Subj_name VARCHAR2(40),
描述VARCHAR2(200)
这是我的尝试:
SET serveroutput on;
CREATE TABLE Subject
(
IdSubj NUMBER(3),
SubjName VARCHAR2(40),
Descr VARCHAR2(500)
);
BEGIN
For i IN 1..5 LOOP
INSERT INTO Subject(IdSubj, SubjName, Descr)
VALUES(i, 'Subject number: ' || TO_CHAR(i), 'Description of subject ');
dbms_output.put_line('Id subj: ' || i || ', Subject:' || ', Descr: ');
END LOOP;
END;
问题:
1)我是否以正确的方式启动了SubjName记录('主题编号:'|| TO_CHAR(i))?
2)如何输出第2和第3值?
答案 0 :(得分:1)
如果通过“输出第2和第3个值”表示您插入SUBJNAME和DESCR列的值,则可以使用RETURNING子句保存插入的值,然后从变量中输出值,如:
DECLARE
strSubjname SUBJECT.SUBJNAME%TYPE;
strDescr SUBJECT.DESCR%TYPE;
BEGIN
For i IN 1..5 LOOP
INSERT INTO SUBJECT(IdSubj, SubjName, Descr)
VALUES(i, 'Subject number: ' || TO_CHAR(i), 'Description of subject ')
RETURNING SUBJNAME, DESCR INTO strSubjname, strDescr;
dbms_output.put_line('Id subj: ' || i ||
', Subject:' || strSubjname ||
', Descr: ' || strDescr);
END LOOP;
END;
分享并享受。