1、oracle 特殊字符 转义
关键词: oracle 转义
环境:oracle 9i plsql
在plsql里边执行:
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那么理想,因为这其中有一个oracle的特殊字符,需要进行转义,那就是字符'&'.
怎么处理上例中的特殊字符?
两个办法:
1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'
2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'
其中||是连字符, chr(38)跟ASCII的字符转码是一致的。
plsql中还可以set 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('&'))) ;
(方法一)
例:插入特殊字元'&'
SQL> SHOW DEFINE
define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’
SQL> SET DEFINE OFF
SQL> SHOW DEFINE
define OFF
SQL> INSERT INTO <table_name> VALUES ('AT&T');
/
1 row created
(方法二)
SQL> SHOW ESCAPE
escape OFF <--- ESCAPE的default值是 OFF
SQL> SET ESCAPE ON
SQL> SHOW ESCAPE
escape "\" (hex 5c)
SQL> INSERT INTO temp_table VALUES ('select * from emp where ename = \&1');
1 row created.
;
几个测试方法:
SELECT 'myjsp?page=1&pagesize=10' FROM dual;
SELECT 'myjsp?page=1&pagesize=10' FROM dual;
SQL> create table a (b varchar2(10));
Table created
SQL> insert into a values('_a');
1 row inserted
SQL> select B from A where instr(b,'_a')>0;
B
----------
_a
select B from A where b like '%\_a%' escape '\'
先启动转义符
set escape on
select B from A where b like '%\_a%' escape '\';
select B from A where b like '%\_a%' escape '\'
分享到:
相关推荐
这样,PL/SQL解释器会将第二个单引号识别为转义字符,从而正确地解析字符串。 ### 结论 PL/SQL作为一种高度集成的语言,不仅提供了丰富的数据类型和控制结构,还支持高级的二进制位操作,如BITAND函数。掌握这些...
PL/SQL 基础,一个不错的 PL/SQL 参考手册。内容预览: ---- 第一章 PL/SQL 简介 ---- 1. Oracle应用编辑方法概览 1) Pro*C/C++/... : C语言和数据库打交道的方法,比OCI更常用; 2) ODBC 3) OCI: C语言和...
### Oracle笔记精炼知识点 #### 一、Oracle基础概念与数据类型 ...这些知识点是学习Oracle的重要基础,对于理解和掌握Oracle数据库非常关键。在实际应用中,还需要不断实践和探索更高级的功能和技术。
ORACLE中的动态SQL编程是PL/SQL语言的一个重要组成部分,它允许在程序运行时动态构建和执行SQL语句。动态SQL不仅提高了程序的性能,而且增加了程序的灵活性。在本篇文档中,我们将详细探讨动态SQL编程的方法,并指出...
-- 禁用转义字符 conn user_name1/password@database @@1.sql; /-- 跳过中间的参数 @@2.sql; / @@3.sql; / ``` 这里的`set define off;`命令用来禁用`&`作为参数占位符的功能,从而避免了执行时可能出现的问题。 ...
PL/SQL是一种专门为Oracle数据库设计的编程语言,它是SQL的扩展,增加了过程化编程的...通过不断的练习和学习,可以逐步掌握PL/SQL的高级特性,如游标、循环、包和对象类型,从而在Oracle数据库开发中更加得心应手。
在Oracle的学习过程中,SQL(结构化查询语言)和PL/SQL(Oracle的编程语言扩展)是基础,而了解如何处理特殊字符、事务控制、游标操作、异常处理以及数值转换等技巧则是进阶内容。 1. **处理特殊字符**:在查询时,...
- `Sql Plus`:Oracle提供的命令行工具,用于执行SQL语句和PL/SQL块。 - 图形版`Sql Plus`:通过“开始”菜单运行,提供更友好的用户界面。 - `Toad`:强大的数据库管理和开发工具,适合复杂的数据库管理工作。 ...
在Oracle SQL和PL/SQL中,异常分为预定义异常(如NO_DATA_FOUND,TOO_MANY_ROWS等)和用户自定义异常。预定义异常通常对应于特定的数据库操作错误,而自定义异常则允许开发者根据业务需求创建自己的异常类。 异常...
应使用预处理语句、转义特殊字符或使用PDO扩展来防止SQL注入攻击。同时,确保数据库连接参数的安全,避免敏感信息泄露。 9. **资源管理** 完成数据库操作后,记得关闭游标和连接,释放资源,如oci_free_statement...
若要查询包含这些特殊字符的数据,需使用转义字符。例如,查询字段中包含'%'的记录,应写为`WHERE column LIKE '%\%%' ESCAPE '\'`。 2. **插入单引号**:插入包含单引号的字符串时,需要使用双单引号或转义字符。...
Oracle SQL 是一种用于管理和操作Oracle数据库的结构化查询语言,它是SQL标准的一个实现,具有许多扩展功能,使得在Oracle环境中处理数据更为高效和便捷。在本文中,我们将深入探讨如何使用Oracle SQL,包括连接远程...
OCI允许程序员在C或C++环境中直接访问Oracle数据库的功能,包括数据查询、事务管理、游标操作、PL/SQL块执行等。在19c版本的Oracle Call Interface Programmer's Guide中,它详细介绍了如何使用OCI进行高效且灵活的...
对于简单SQL名称,应该限制其来源,确保只使用预定义的、经过验证的名称列表,或者使用Oracle的内置函数进行转义。 ### 成本效益原则下预防SQL注入的规则 1. **仅通过PL/SQL API暴露数据库给客户端**:这可以限制...
【Oracle FAQ 2006】是一份详细的Oracle数据库使用指南,主要涵盖了SQL与PL/SQL方面的常见问题和解决方案。这份资料的价值在于它提供了一系列在实际工作中经常遇到的问题的解答,帮助用户提升对Oracle数据库的理解和...
在维护Oracle数据库项目时,掌握一些常用的SQL及PL/SQL语句是至关重要的。下面将对标题和描述中提到的一些关键知识点进行详细说明。 1. **查询特殊字符**: 在Oracle中,特殊字符如`%`和`_`通常用于模糊匹配。如果...
Oracle学习笔记第一册主要涵盖了Oracle数据库的基础操作,包括客户端连接、用户管理、表结构查看、SELECT语句的使用、DISTINCT关键字、WHERE子句、ORDER BY子句以及SQL函数的应用。下面将对这些知识点进行详细阐述。...
`what`参数中的PL/SQL调用应该用分号隔开,字符串需要正确转义。对于存储过程的调用,建议封装在匿名PL/SQL块中,以简化管理和避免潜在错误。 总的来说,Oracle的定时任务机制通过`DBMS_JOB`包提供了一套强大的工具...
这可以通过使用Oracle的DBMS_SQL包或者直接执行PL/SQL语句来完成。例如,可以创建一个存储过程,接收SQL文件路径作为参数,读取文件内容,解析SQL语句,然后使用`EXECUTE IMMEDIATE`执行查询。 Oracle数据集转换为...