INSERT 문에서 "여기에 열이 허용되지 않습니다" 오류가 발생했습니다.
LOCATION이라는 테이블을 작성했습니다.
CREATE TABLE LOCATION(
POSTCODE VARCHAR(10) PRIMARY KEY,
STREET_NAME VARCHAR(20),
CITY VARCHAR(20));
테이블에 날짜를 추가하려고 하면 오류가 발생했다고 하는 기능이 작동하지 않습니다.
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
에러는 다음과 같습니다.
여기서 열을 사용할 수 없습니다.
첫 번째 값에 대한 따옴표가 누락되어 있습니다.
INSERT INTO LOCATION VALUES('PQ95VM', 'HAPPY_STREET', 'FRANCE');
덧붙여서, 가독성, 유지보수성, 견고성 등의 이유로 INSERT에 열 이름을 명시적으로 지정하는 것이 좋습니다.
INSERT INTO LOCATION (POSTCODE, STREET_NAME, CITY) VALUES ('PQ95VM', 'HAPPY_STREET', 'FRANCE');
삽입 쿼리를 실행하는 동안 다음과 같은 문제가 발생합니다.
여기에 열이 허용되지 않습니다.
오류입니다. 문자열 매개 변수에 따옴표가 없을 수 있습니다.문자열 매개 변수에 따옴표를 추가하고 실행을 시도합니다.
이것을 시험해 보세요.
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
또는
INSERT INTO LOCATION (ID, FIRST_NAME, LAST_NAME) VALUES('PQ95VM','HAPPY_STREET','FRANCE');
http://www.drtuts.com/oracle-error-column-not-allowed-here/
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
위에 언급된 코드가 올바르지 않습니다. 왜냐하면 당신의 첫 번째 파라미터 POSTCODE가 유형이기 때문입니다.VARCHAR(10)
. 를 사용했어야 합니다.
해라INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
Scampman이 말한 것처럼, 당신은 인용구를 놓치고 있다.varchar2에 값을 전달할 때는 항상 따옴표를 사용합니다.
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
따라서 1개의 (')가 문자열을 시작하고 2번째 (')가 문자열을 닫습니다.
그러나 따옴표 기호를 문자열에 추가하려면 다음과 같이 하십시오.
아버지는 나에게 말했다: "아들아, 용감해져야 해."
다음과 같은 세 개의 따옴표 기호를 사용해야 합니다.
"아버지께서 말씀하시길, "용감해져야 한다, 아들아."
* 견적 방법은 DB 엔진에 따라 다를 수 있습니다.
놓친 건" "
우편번호로 말하면varchar
.
삽입에는 두 가지 방법이 있습니다.
테이블 작성 시Table created.
작성한 직후에 행을 추가하면 다음과 같은 방법을 사용할 수 있습니다.
INSERT INTO table_name
VALUES (value1,value2,value3,...);
1 row created.
테이블을 너무 많이 추가했거나 테이블이 저장되고 다시 열 때 테이블의 열 이름도 지정해야 합니다. 그렇지 않으면 동일한 오류가 표시됩니다.
ERROR at line 2:
ORA-00984: column not allowed here
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
1 row created.
큰따옴표("")를 작은따옴표("")로 변환합니다.
예
다음과 같은 기능이 있는 경우:
INSERT INTO clients (id, email, country)
VALUES (1, "john@gmail.com", "USA");
다음과 같이 변환:
INSERT INTO clients (id, email, country)
VALUES (1, 'john@gmail.com', 'USA');
나는 잘못된 따옴표를 사용하는 오류를 범했다.값 목록에서 작은 따옴표 대신 큰 따옴표를 문자열 구분자로 사용했습니다.문자열 리터럴을 묶는 데 사용되는 MySQL과 달리 Oracle에서 큰따옴표는 열 식별자에서 구분자로 사용됩니다.
INSERT INTO MYUSERS VALUES( 'Name', "Surname"); // Wrong
INSERT INTO MYUSERS VALUES( 'Name', 'Surname'); // Correct, Surname must be in single quotes
이 에러는, 변수명을 입력할 때에 철자를 잘못 입력했을 경우에 발생합니다.stored proc와 마찬가지로 변수 이름 x와 insert 스테이트먼트에 사용하고 있습니다.
insert into tablename values(y);
여기에는 허용되지 않는 오류 열이 표시됩니다.
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
String surname = sc.nextLine();
Statement statement = connection.createStatement();
String query = "INSERT INTO STUDENT VALUES("+'"name"'+","+'"surname"'+")";
statement.executeQuery();
문자열에 "----"를 추가하는 것을 잊지 마십시오.
varchar 대신 varchar2를 사용하여 다음을 사용합니다.
INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');
기호문자 구분 기호)를 .' '
당신은 」' '
에러 메시지의 원인이 되는 값을 삽입합니다.코드 수정은 다음과 같습니다.
INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');
저도 insert 명령어로 작업할 때 같은 오류가 발생하였습니다.큰따옴표를 작은따옴표로 대체했더니 잘 작동했습니다.
ifPQ95VM
스트링으로 있는 는, 「」를 사용합니다.'PQ95VM'
이치노
언급URL : https://stackoverflow.com/questions/10501521/column-not-allowed-here-error-in-insert-statement
'programing' 카테고리의 다른 글
워드프레스.우코머스카트에 추가하기 전에 작업 후크 (0) | 2023.03.12 |
---|---|
디버거에서 IntelliJ Idea의 JSON 개체 가져오기 (0) | 2023.03.12 |
Angular의 'scope'를 사용하여 다른 컨트롤러에서 컨트롤러의 메서드를 호출합니다.JS (0) | 2023.03.12 |
스크립트로 인해 "인라인 스크립트 실행 거부:인라인 실행을 활성화하려면 'unsafe-inline' 키워드, 해시 또는 난스가 필요합니다." (0) | 2023.03.12 |
부모 클래스에서 자식 구성 요소 메서드 호출 - 각도 (0) | 2023.03.12 |