検索
ホームページデータベースOracleOracleのエスケープ文字とは何ですか

Oracle のエスケープ文字: 1. 文字列を引用するかエスケープするために使用される一重引用符; 2. 不正な形式の文字をラップするために使用される二重引用符; 3. "&" つまり、and 記号は次の目的で使用されます。 2 つのエスケープ自体を接続する; 4. エスケープは、エスケープ文字として非特殊記号を指定するために使用されます。

Oracleのエスケープ文字とは何ですか

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle のエスケープ文字とは

1. Oracle の特殊文字エスケープ

キーワード: oracle エスケープ

#plsql で実行:

update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'

この SQLこのステートメントは、URL アドレスをデータベースの pageurl フィールドに入力しますが、Oracle の特殊文字が含まれているため、実行時にはあまり理想的ではありません。エスケープする必要があります。つまり、文字 '&' です。

上記の例の特殊文字はどのように処理すればよいですか?

2 つの方法:

1) ユーザー情報を更新 setpageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'

2) ユーザー情報を更新 setpageurl='myjsp?page=1'||chr(38)||'pagesize=10' ここで id='test'

|| はハイフン、chr( 38 ) ASCII 文字トランスコーディングと一致しています。

plsql では、define off を設定して特殊文字をオフにすることもできます。また、show define を使用して特別に定義された文字を表示することもできます。

2. oracle で特殊文字をエスケープする方法

質問: アンダースコアをエスケープする方法_

select * from ng_values where name like 'lady_%'

jieguo 結果は、lady_test,lady_test,lady1

であることを示しています。正しい結果は次のようになります: lady_test, lady_test

lady1

を除くエスケープ メソッド、3ks

answer:

select ... from ... where ... like '/_%' escape '/';

3,

insert into t(col) values(chr(ascii('&'))) ;

(方法 1)

例: 特殊文字を挿入 '&'

SQL> SHOW DEFINE
define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’
SQL> SET DEFINE OFF
SQL> SHOW DEFINE
define OFF
SQL> INSERT INTO <table_name> VALUES (&#39;AT&T&#39;);

/

1 行作成されました

(方法 2 )

SQL> SHOW ESCAPE
escape OFF <--- ESCAPE的default值是 OFF
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
escape "\" (hex 5c)
SQL> INSERT INTO temp_table VALUES (&#39;select * from emp where ename =\&1&#39;);

1 行が作成されました。

いくつかのテスト方法:

SELECT &#39;myjsp?page=1&pagesize=10&#39; FROM dual;
SELECT &#39;myjsp?page=1&pagesize=10&#39; FROM dual;
SQL>   create   table   a  (b   varchar2(10));  
Table   created  
SQL>   insert   into   a  values(&#39;_a&#39;);

1 行が挿入されました

SQL>   select   B   from  A   where   instr(b,&#39;_a&#39;)>0;  
B  
----------  
_a  
select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;

最初に転送を開始します シンボル

setエスケープ on

select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;;
select   B   from   A  where   b   like   &#39;%\_a%&#39;  escape   &#39;\&#39;;

二重引用符"はOracleではエスケープ文字ではないため、エスケープせずに直接保存できます。

oracle エスケープ文字は次のとおりです:

1、一重引用符

ORACLE では一重引用符には 2 つの機能があります: 1) 文字列を引用符で囲む、2) エスケープ

文字列を引用する場合、一重引用符はペアで指定され、エスケープ文字自体も偶数である必要があるため、SQL ステートメントでは一重引用符はペアで指定する必要があります。複雑なエスケープ文字列は、理解しやすいように接続記号 || で分割できます。接続記号 '||' を囲む一重引用符は、'||' が文字列の一部である場合を除き、関係を持ちません (これは動的 SQL で非常に一般的です)。 .

Select &#39;abc&#39; a,&#39;&#39; b, &#39;&#39;&#39;&#39; c, &#39; &#39;&#39; &#39; d From Dual;

2、二重引用符

1) 一般的に、文字列内の二重引用符は通常の文字としてのみ扱われます。現時点では、二重引用符をペアで使用する必要はありません:

Select &#39;name&#39; || &#39;&#39;&#39;&#39;&#39;&#39; a, &#39;name&#39;&#39;&#39;&#39;&#39; b From Dual;
Output:name&#39;&#39;  name&#39;&#39;

2) to_char の書式文字列に使用する場合、二重引用符には特別な機能があり、不正な書式文字を囲んで回避します。 ORA-01821: 日付形式が認識されないエラーです。

つまり、二重引用符とそれに含まれる文字を削除した後、残りは有効な形式文字列である必要があります。

to_char は無視されますフォーマット文字列を処理するときは二重引用符で囲みます:

Select To_Char(Sysdate, 'hh24"hour"mi" minutes" ss"seconds"') As "Current Time/Hour Minutes Seconds" From Dual;

出力:09 時間 05 分 08 秒 -- このアプリケーションはエイリアスにも存在します

形式文字列は 'hh24" 時 "mi" 分 "ss" 秒"';

二重引用符を削除すると、「hh24miss」が残ります。これは正当な書式指定文字列です。

ただし、二重引用符の使い方がよくわからない場合でも、少し面倒ではありますが、次のように処理できます。

Select To_Char(Sysdate, 'hh24) ') || 'Hour' || To_Char (Sysdate, 'mi') || 'Min' || To_Char(Sysdate, 'ss') || 'Second' デュアル;

出力の結果: 09 時間 05 分 08 秒

3,& (および記号)

はカスタム変数の識別/設定に使用され、その後に変数名が続きます。を文字として使用する必要がある場合は、Chr (38) を使用するか、2 つの && を接続する (エスケープ自体)

Select &#39;hh24"小时""mi""分"""ss"秒"&#39; Results From Dual;
Output:hh24"小时""mi""分"""ss"秒"

4, Escape(エスケープ文字を指定する)

非エスケープ文字としての特殊記号。主にワイルドカード エスケープに使用されます。

Select Chr(38) a, &#39;Tom&&Jerry&#39; b, &#39;Gun &#39;&#39;N Roses&#39; c From Dual;
Output:&    Tom&Jerry    Gun &#39;N Roses
推奨チュートリアル: "Oracle Video Tutorial

"

以上がOracleのエスケープ文字とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
oracle怎么查询所有索引oracle怎么查询所有索引May 13, 2022 pm 05:23 PM

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター