在oracle中用值创建表

时间:2018-09-06 08:00:44

标签: oracle

create table careers 
(s_no number(2), 
course varchar2(20), 
topic1 varchar2(20), 
status1 varchar2(20), 
topic2 varchar2(20),
status2 varchar2(20),
topic3 varchar2(20),
status3 varchar2(20)) 
values (1,'oracle','sql','not','BI','not','apex','not');

我遇到了这样的错误:

  

从第2行开始的错误-      创建餐桌事业      (s_no number(2),      当然varchar2(20),      topic1 varchar2(20),      status1 varchar2(20),      topic2 varchar2(20),      status2 varchar2(20),      topic3 varchar2(20),      status3 varchar2(20))      值(1,'oracle','sql','not','BI','not','apex','not')      错误报告 -      ORA-00922:丢失或无效的选项      00922. 00000-“选项缺失或无效”

请给我建议一件适当的事情。

3 个答案:

答案 0 :(得分:2)

首先创建表格,然后插入。

SQL> CREATE TABLE careers
  2  (
  3     s_no      NUMBER (2),
  4     course    VARCHAR2 (20),
  5     topic1    VARCHAR2 (20),
  6     status1   VARCHAR2 (20),
  7     topic2    VARCHAR2 (20),
  8     status2   VARCHAR2 (20),
  9     topic3    VARCHAR2 (20),
 10     status3   VARCHAR2 (20)
 11  );

Table created.

SQL>
SQL> INSERT INTO careers (s_no,
  2                       course,
  3                       topic1,
  4                       status1,
  5                       topic2,
  6                       status2,
  7                       topic3,
  8                       status3)
  9       VALUES (1,
 10               'oracle',
 11               'sql',
 12               'not',
 13               'BI',
 14               'not',
 15               'apex',
 16               'not');

1 row created.

SQL>

或者,您可以直接将表 创建为

SQL> create table careers as
  2    select 1 s_no, 'oracle' course,
  3      'sql'  topic1, 'not' status1,
  4      'BI'   topic2, 'not' status2,
  5      'apex' topic3, 'not' status3
  6    from dual;

Table created.

但这可能不是一个好主意-检查数据类型及其长度-后续插入时会遇到问题(例如,您将无法插入长度大于2个字符的TOPIC2值)。另外,CHAR数据类型很可能不是您想要的(VARCHAR2会更好):

SQL> desc careers
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------
 S_NO                                               NUMBER
 COURSE                                             CHAR(6)
 TOPIC1                                             CHAR(3)
 STATUS1                                            CHAR(3)
 TOPIC2                                             CHAR(2)
 STATUS2                                            CHAR(3)
 TOPIC3                                             CHAR(4)
 STATUS3                                            CHAR(3)

SQL>

所以-坚持第一个选择。

答案 1 :(得分:0)

您发布的内容存在一些语法错误。您必须首先创建表,然后将数据插入其中。例如,以下在我的系统中可以通过sqlplus工作...请尝试一下:

CREATE TABLE careers
(
   s_no      NUMBER (2),
   course    VARCHAR2 (20),
   topic1    VARCHAR2 (20),
   status1   VARCHAR2 (20),
   topic2    VARCHAR2 (20),
   status2   VARCHAR2 (20),
   topic3    VARCHAR2 (20),
   status3   VARCHAR2 (20)
);

INSERT INTO careers
     VALUES (1,
             'oracle',
             'sql',
             'not',
             'BI',
             'not',
             'apex',
             'not');
commit;

答案 2 :(得分:0)

我认为我们无法以您的方式创建表并添加值。您可以尝试以下操作(示例外观):

CREATE TABLE recipes (
  recipe_id INT NOT NULL AUTO_INCREMENT,
  recipe_name VARCHAR(30) NOT NULL,
  PRIMARY KEY (recipe_id),
  UNIQUE (recipe_name)
);

INSERT INTO recipes 
    (recipe_name) 
VALUES 
    ("Tacos"),
    ("Tomato Soup"),
    ("Grilled Cheese");