큰따옴표가 있는 문자열을 표에 삽입
Oracle 10g을 사용하고 있는데 큰따옴표가 있는 문자열을 테이블에 삽입하는 데 문제가 있습니다.이것이 제 진술입니다.
INSERT INTO USERS (ID, NAME, USERNAME) VALUES (NULL, "tes", "hello");
위 쿼리는 "Oracle column not allowed here" 오류와 함께 실패합니다.
아래와 같이 큰따옴표를 작은따옴표로 바꾸면 문장이 성공합니다.
INSERT INTO USERS (ID, NAME, USERNAME) VALUES (NULL, 'tes', 'hello');
하지만 저는 표에 큰따옴표를 삽입하고 싶습니다.
삽입문에서 문자열로 이중 따옴표를 사용할 수 있습니까?쿼리가 배열에서 자동으로 생성되므로 REPLACE()를 사용하지 않습니다.
이중 따옴표는 따옴표로 묶인 식별자, 즉 영숫자 문자로만 구성되지 않은 개체 이름을 나타내는 데 사용됩니다.$
그리고.#
별도로 따옴표로 묶은 식별자를 사용하지 않는 것이 좋습니다.이것이 당신의 원래 ORA-00984 오류의 이유입니다.Oracle은 다음과 같이 가정하고 있습니다."tes"
는 문자열이 아닌 열이며, 오류 메시지에 설명된 대로 INSERT 문의 VALUES 절에 열 이름을 사용할 수 없습니다.
문자열을 삽입하려면 "tes"
테이블에 올바르게 따옴표를 붙여야 합니다.
문자 리터럴은 데이터베이스가 스키마 개체 이름과 구별할 수 있도록 단일 따옴표로 묶입니다.
모든 문자는 문자열의 일부가 될 수 있으므로 표에 큰따옴표를 삽입하려면 작은따옴표로 묶어야 합니다.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
여기에 시연할 SQL Fiddle이 있습니다.
한 가지 더 주의할 점이 있습니다.이 쿼리는 자동으로 생성되므로 SQL 주입에 취약할 수 있습니다.SQL 주입 방지에서 바인딩 변수에 대해 읽는 것을 강력히 추천합니다.
가능하다.Oracle에서는 단일 따옴표를 사용하여 문자열 리터럴을 따옴표로 묶습니다.
삽입할 경우test
당신은 그것을 데이터베이스에 인용해야 합니다.'test'
.
INSERT INTO USERS (NAME) VALUES ('test');
삽입할 경우"test"
당신은 그것을 데이터베이스에 인용해야 합니다.'"test"'
.
INSERT INTO USERS (NAME) VALUES ('"test"');
값을 작은 따옴표로 묶습니다.
INSERT INTO USERS (ID, NAME, USERNAME) VALUES (NULL, '"tes"', '"hello"');
언급URL : https://stackoverflow.com/questions/14660666/inserting-a-string-with-double-quotes-into-a-table
'programing' 카테고리의 다른 글
Oracle의 테이블에서 N번째 행 선택 (0) | 2023.07.20 |
---|---|
Oracle: 여러 열을 동시에 업데이트 (0) | 2023.07.20 |
수백만 개의 행이 있는 테이블을 사용하여 Oracle에서 임의 행을 더 빠르게 선택할 수 있는 방법은 무엇입니까? (0) | 2023.07.20 |
'http:/.127.0.0.1:%HTPORT%/apex/f?p=4950'을(를) 찾을 수 없습니다.이름을 올바르게 입력했는지 확인한 다음 다시 시도하십시오. (0) | 2023.07.15 |
보안이 활성화된 상태에서 Spring Boot 1.4 테스트를 수행하시겠습니까? (0) | 2023.07.15 |