programing

INSERT 문에서 "여기에 열이 허용되지 않습니다" 오류가 발생했습니다.

kingscode 2023. 3. 12. 12:23
반응형

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

반응형