對自定義函式建立索引時拋異常ORA 30553

2021-06-19 11:40:04 字數 1686 閱讀 8686

對自定義函式建立索引時拋異常

ora-30553

--ora-30553:

函式不能確定(

ora-30553: the function is not deterministic

)解決方法

function integer table sql

對自定義函式建立索引時拋異常

--ora-30553:

函式不能確定(

ora-30553: the function is not deterministic

)解決方法

問題描述:

sql> create or replace function f_16turnto10(

2    str_16char  in varchar2

3  )return integer

4  is

5    i_number number(10);

6   i_int  int;

7  begin

8    i_int := length(str_16char)+10;

9    i_number := to_number(str_16char,rpad('x',i_int,'x'));

10   return i_number;

11  end;

12  /

function created

sql> create table t_16turn10 as select username,'4d' as psw  from dba_users;

table created

sql> create index i_16turn10 on t_16turn10 (f_16turnto10(psw));

create index i_16turn10 on t_16turn10 (f_16turnto10(psw))

ora-30553:

函式不能確定

解決如下:

如果需要建立基於自定義函式的索引

,那麼我們需要指定

deterministic

引數,在函式建立的時候指定該引數問題可解決。

sql> create or replace function f_16turnto10(

2    str_16char  in varchar2

3  )return integer deterministic

4  is

5    i_number number(10);

6   i_int  int;

7  begin

8    i_int := length(str_16char)+10;

9    i_number := to_number(str_16char,rpad('x',i_int,'x'));

10   return i_number;

11  end;

12  /

function created

sql> create table t_16turn10 as select username,'4d' as psw  from dba_users;

table created

sql> create index i_16turn10 on t_16turn10 (f_16turnto10(psw));

index created

建立自定義異常類

建立自定義的異常類需要繼承自exception類,並提供含有乙個string型別形參的構造方法,該形參就是一場的描述資訊,可以通過getmessage 方法獲得。例如 public class newexception extends exception try catch在main裡頭用哈,具體的...

MSSQL 建立自定義異常

建立時,必須先建立英文的,否則會報錯 必須新增此訊息的 us english 版本後,才能新增 簡體中文 版本。exec sp addmessage 50001,15,option wrong us english exec sp addmessage 50001,15,操作錯誤 簡體中文 在 加入...

使用C 對SQLite建立自定義函式

sqlite是輕量級的資料庫,關於它的常規用法就不一一介紹了,本文主要介紹了如何建立自定義函式,對其進行擴充套件,以滿足開發中的個性化需求。sqlitefunction是乙個抽象類,主要用於處理使用者自定義函式。主要成員如下 有三種型別函式可以自定義,分別是 scalar,aggregate,col...