oracle procedure儲存過程輸入引數用於sql like模糊匹配2演算法
SQL> select * from t_like;
A
--------------------------------------------------------------------------------
山西省
北京
北京
SQL> create or replace procedure proc_like(in_a varchar2)
2 as
3 v_sql varchar2(4000);
4 begin
5 v_sql:='select a from t_like where a like '||''''||'%'||in_a||'%'||'''';
6 dbms_output.put_line(v_sql);
7 end;
8 /
Procedure created
2 as
3 v_sql varchar2(4000);
4 begin
5 v_sql:='select a from t_like where a like '||''''||'%'||in_a||'%'||'''';
6 dbms_output.put_line(v_sql);
7 end;
8 /
Procedure created
SQL> exec proc_like('北京');
select a from t_like where a like '%北京%'
PL/SQL procedure successfully completed
SQL> select a from t_like where a like '%北京%';
A
--------------------------------------------------------------------------------
北京
北京
select a from t_like where a like '%北京%'
PL/SQL procedure successfully completed
SQL> select a from t_like where a like '%北京%';
A
--------------------------------------------------------------------------------
北京
北京
SQL> create or replace procedure proc_like_instr(in_a varchar2)
2 as
3 v_sql varchar2(4000);
4 begin
5 v_sql:='select a from t_like where instr(a,in_a)>0
6 dbms_output.put_line(v_sql);
7 end;
8 /
Procedure created
2 as
3 v_sql varchar2(4000);
4 begin
5 v_sql:='select a from t_like where instr(a,in_a)>0
6 dbms_output.put_line(v_sql);
7 end;
8 /
Procedure created
小結:instr效率高於動態拼接sql,因為動態拼接每次要硬解析
最好思考用函式實現儲存過程的功能而非動態sql
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-753202/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL入門--儲存過程(PROCEDURE)和儲存函式(FUNCTION)MySql儲存過程儲存函式Function
- mysql 儲存過程 procedure 批次建表MySql儲存過程
- mysql檢視儲存過程show procedure status;MySql儲存過程
- mysql儲存過程的引數MySql儲存過程
- mysql儲存過程procedure、函式function的用法MySql儲存過程函式Function
- Oracle儲存過程Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- PL/SQL中動態掉用儲存過程SQL儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- 造數儲存過程儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- LightDB/PostgreSQL 相容Oracle儲存過程SQLOracle儲存過程
- oracle儲存過程書寫格式Oracle儲存過程
- MySQL儲存過程in、out、inout引數示例與總結MySql儲存過程
- 儲存過程vs.動態SQL:如何選用?PV儲存過程SQL
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- go 如何呼叫 sqlserver 帶傳出引數的儲存過程GoSQLServer儲存過程
- SQL Server儲存過程的優缺點SQLServer儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- 用flashback恢復儲存過程儲存過程
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- 關於Entity Freamwork 儲存過程操作儲存過程
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- EF中使用SQL語句或儲存過程SQL儲存過程
- Springboot呼叫Oracle儲存過程的幾種方式Spring BootOracle儲存過程
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- 關於SQL server2008除錯儲存過程的完整步驟SQLServer除錯儲存過程
- ORACLE PL/SQL 物件、表資料對比功能儲存過程簡單實現OracleSQL物件儲存過程
- 詳解MySQL儲存過程引數有三種型別(in、out、inout)MySql儲存過程型別
- 儲存過程與儲存函式儲存過程儲存函式
- unidac儲存過程儲存過程