Не уверен, как указать тип данных для SQL COMMAND - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь выполнить оператор create в SQL Workshop

, но не уверен, что это за ошибка. Я попытался внести некоторые коррективы после обратной связи с сообществом, но, похоже, проблема заключается в создании таблицы? Не слишком уверен.



CREATE TABLE CUSTOMER 

(
Customer_ID INT PRIMARY KEY,
Customer_Name VARCHAR2(25),
Customer_Age,
Customer_City VARCHAR2(20)

);

INSERT INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City )
SELECT 1, 'Simon Li',21,'New York' FROM DUAL UNION ALL 
SELECT 2, 'Richard Andrew',34,'San Diego' FROM DUAL UNION ALL 
SELECT 3, 'Catherine Wong',34,'Tuscon' FROM DUAL UNION ALL 
SELECT 4, 'Marie',28,'Tuscon' FROM DUAL UNION ALL 
SELECT 5, 'Bob Richard',27,'San Diego' FROM DUAL UNION ALL 

Журнал ошибок / результаты

ORA-00922: missing or invalid option
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 592
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 578
ORA-06512: at "APEX_190200.WWV_FLOW_DYNAMIC_EXEC", line 2057


3. Customer_ID INT PRIMARY KEY,
4. Customer_Name VARCHAR2(25),
5. Customer_Age,
6. Customer_City VARCHAR2(20)
7. );

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Один из способов вставки нескольких строк в таблицу приведен ниже:

 INSERT ALL
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
      INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)
    SELECT * FROM dual;

В вашем случае

INSERT ALL
      INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City ) VALUES (1,'Simon Li',21,'New York')
      INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City ) VALUES (2,'Richard Andrew',34,'San Diego')
      INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City ) VALUES (3,'Catherine Wong',34,'Tuscon')
      INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City ) VALUES (4,'Marie',28,'Tuscon')
      INTO CUSTOMER (Customer_ID,Customer_Name,Customer_Age,Customer_City ) VALUES (5,'Bob Richard',27,'San Diego')
    SELECT * FROM dual;

, а также вам не хватает типа данных для столбца Customer_Age, Возраст не более 3 цифр, поэтому мы можем объявить его как НОМЕР (3)

CREATE TABLE CUSTOMER 

(
Customer_ID INT PRIMARY KEY,
Customer_Name VARCHAR2(25),
Customer_Age NUMBER(3),
Customer_City VARCHAR2(20)
);
0 голосов
/ 13 марта 2020

Убедитесь, что вы указали тип данных для customer_age

Чтобы вставить несколько строк в oracle:

INSERT INTO CUSTOMER(Customer_ID,Customer_Name,Customer_Age,Customer_City )
SELECT 1,'Simon Li',21,'New York ' FROM DUAL UNION ALL
SELECT 2,'Richard Andrew',34,'San Diego' FROM DUAL UNION ALL
 ...
SELECT 5,'Bob Richard',27,'San Diego'
  • Использовать ' для струнных. "для чувствительных к регистру имен столбцов с пробелами, странных символов и т. д. c

  • вы не можете использовать ключевое слово VALUES несколько раз. UNION ALL несколько запросов, которые вместо констант выбирают из двойного

Если вы используете последовательность для своего идентификатора, вам может понадобиться больше:

INSERT INTO CUSTOMER(Customer_ID,Customer_Name,Customer_Age,Customer_City )
SELECT idseq.nextval, a, b, c FROM(
  SELECT 'Simon Li' AS A,21 AS B,'New York ' AS C FROM DUAL UNION ALL
  SELECT 'Richard Andrew',34,'San Diego' FROM DUAL UNION ALL
 ...
  SELECT 'Bob Richard',27,'San Diego'
)X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...