[SQL] 에 "&"가 포함 된 문자열을 삽입하는 방법
SQL에 "&"가 포함 된 문자열을 삽입하는 방법
어떻게 및 문자를 포함하는 삽입 문을 작성할 수 있습니다? 예를 들어, 나는 데이터베이스에 컬럼에 "J & J 건설"을 삽입하기를 원한다면.
나는 확실히 그 차이가 있는지 모르겠지만, 오라클 9i에 사용하고 있습니다.
해결법
-
==============================
1.나는 이것을 잊고 다시 다시오고 계속! 나는 최선의 대답은 지금까지 제공 한 응답의 조합이라고 생각합니다.
나는 이것을 잊고 다시 다시오고 계속! 나는 최선의 대답은 지금까지 제공 한 응답의 조합이라고 생각합니다.
첫째, 변수 접두사 SQLPLUS / sqldeveloper, 따라서 문제는 -이 나타나면,이 변수 이름의 일부가 될 것으로 예상된다.
SET는 & 이런 식으로 해석 SQLPLUS 중지됩니다 OFF DEFINE.
하지만 당신은 사용 SQLPLUS 변수와 문자 및 문자에 무엇을해야하는 경우?
EG
set define on set escape on define myvar=/forth select 'back\\ \& &myvar' as swing from dual;
생성합니다 :
old 1: select 'back\\ \& &myvar' from dual new 1: select 'back\ & /forth' from dual SWING -------------- back\ & /forth
당신은 다른 이스케이프 문자를 사용하려면 :
set define on set escape '#' define myvar=/forth select 'back\ #& &myvar' as swing from dual;
특정 이스케이프 문자를 설정할 때 'SP2-0272 : 이스케이프 문자가 숫자 또는 공백이 될 수 없습니다'가 표시 될 수 있습니다. 이것은 아마도 당신은 이미 정의 된 이스케이프 문자를 의미하며, 상황이 끔찍하게 자기 참조 얻는다. 이 문제를 피할 수있는 깨끗한 방법은 우선 설정 탈출하는 것입니다 :
set escape off set escape '#'
-
==============================
2.당신은 SQLPLUS 사용에서 그 일을하는 경우
당신은 SQLPLUS 사용에서 그 일을하는 경우
SET DEFINE OFF
그것은 & 특별한 경우로 밟고 정지
-
==============================
3.또 다른 솔루션을 사용하여 연결하고, CHR 기능 :
또 다른 솔루션을 사용하여 연결하고, CHR 기능 :
select 'J' || chr(38) || 'J Construction' from dual;
-
==============================
4.올바른 구문은
올바른 구문은
set def off; insert into tablename values( 'J&J');
-
==============================
5.문자열로 아스키 코드를 변환 CHR () 함수는 항상있다.
문자열로 아스키 코드를 변환 CHR () 함수는 항상있다.
즉. 뭔가 같은 : 에 집어 넣다 표 VALUES ( CONCAT ( 'J', CHR (38), 'J') )
-
==============================
6.SET SCAN OFF는 사용되지 않습니다 http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a90842/apc.htm
SET SCAN OFF는 사용되지 않습니다 http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a90842/apc.htm
-
==============================
7.프로그램에서 항상 매개 변수화 된 쿼리를 사용합니다. 그것은 SQL 주입 공격뿐만 아니라 SQL 파서에 특별한 다른 문자를 피할 수 있습니다.
프로그램에서 항상 매개 변수화 된 쿼리를 사용합니다. 그것은 SQL 주입 공격뿐만 아니라 SQL 파서에 특별한 다른 문자를 피할 수 있습니다.
-
==============================
8.당신은 'J'|| '&'|| '건설'등 같은 문자열을 삽입 할 수 있습니다. 그것은 잘 작동합니다.
당신은 'J'|| '&'|| '건설'등 같은 문자열을 삽입 할 수 있습니다. 그것은 잘 작동합니다.
insert into table_name (col_name) values('J'||'&'||'Construction');
-
==============================
9.
INSERT INTO TEST_TABLE VALUES('Jonhy''s Sport &'||' Fitness')
이 쿼리의 출력 : Jonhy의 스포츠 및 피트니스
-
==============================
10.다음 옵션 중 하나를 사용하여 작동하는지 나는 발견했습니다 :
다음 옵션 중 하나를 사용하여 작동하는지 나는 발견했습니다 :
SET DEF OFF
또는
SET SCAN OFF
나는 하나가 다른 것보다 더 나은 또는 "더 잘"인 경우 데이터베이스가 알고에 대해 충분히 알지 못한다. 뭔가 더 나은 다음 중 하나 이상이 있다면 또한, 알려 주시기 바랍니다.
-
==============================
11.
SET ESCAPE ON; INSERT VALUES("J\&J Construction") INTO custnames;
(테스트되지 않은, 손에서 오라클 상자가없는 그것은 잠시왔다)
-
==============================
12.당신은 SQL을 사용하는 플러스 나는 당신이 명령을 실행해야한다고 생각하는 경우
당신은 SQL을 사용하는 플러스 나는 당신이 명령을 실행해야한다고 생각하는 경우
SET SCAN OFF
-
==============================
13.정지 내가보기 엔 훨씬 더는 SQL 도구보다는이다 PL / SQL 개발자를 추천, SQL을 사용하여 / 플러스.
정지 내가보기 엔 훨씬 더는 SQL 도구보다는이다 PL / SQL 개발자를 추천, SQL을 사용하여 / 플러스.
추신. 어떤 사람들은 두꺼비를 선호합니다.
-
==============================
14.앤드류을 봐 :
앤드류을 봐 :
"J & J 건설"
SELECT CONCAT('J', CONCAT(CHR(38), 'J Construction')) FROM DUAL;
from https://stackoverflow.com/questions/152837/how-to-insert-a-string-which-contains-an by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] OLE DB 공급자 연결된 서버 "Microsoft.ACE.OLEDB.12.0" "(널)" (0) | 2020.06.25 |
---|---|
[SQL] 그것은 SQL 쿼리의 텍스트 파일을 실행할 수 있습니까? (0) | 2020.06.25 |
[SQL] SQL은 어떻게 선택 반환 값을 바꾸려면? (0) | 2020.06.25 |
[SQL] Oracle 용으로 생성 SQL 삽입 (0) | 2020.06.25 |
[SQL] JDBC 결과 : 저는 getDateTime 필요하지만 GETDATE 및 getTimeStamp이있다 (0) | 2020.06.25 |