启动表和dbms_output.put_line

时间:2014-10-21 10:12:08

标签: plsql

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值?

1 个答案:

答案 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;

分享并享受。

相关问题