1. 程式人生 > >oracle函式-判斷一個欄位是否純數字

oracle函式-判斷一個欄位是否純數字

拿到一個字串,需要判斷下是否純數字組成
方法1 這個方法是之前一個oracle群裡的同學給寫的。直接套用過來了 這個方法是使用exception
create function F_IF_NUMBER(p_str in varchar2) return number as     e_error exception;     pragma exception_init(e_error, -06502); begin     return to_number(p_str); exception     when e_error then         return null; end;j 方法
2 這個方法是使用translate函式進行替換
createorreplacefunction is_number(str varchar2) returnnumber is v_str varchar2(2000); begin   v_str := replace(translate(str,'0123456789','0000000000'),'0',''); if v_str isnullthenreturn0; elsereturn1; endif; end ; 方法3 這個方法,利用正則表示式即可
createorreplacefunction is_number(str varchar2
) returnnumber is begin if regexp_like(str,'^[0-9]+$') thenreturn0; elsereturn1; endif; end ; 方法4: 這裡不是一個方法,其實也是在用exception
declare v_sql varchar2(100) := '&shuru'; not_char exception; PRAGMA EXCEPTION_INIT(not_char, -01722); ha number; begin select to_number(v_sql) into ha from dual;
dbms_output.put_line(ha); exception when not_char then dbms_output.put_line('輸入非純數字'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('發生其它錯誤'); end;

相關推薦

oracle函式-判斷一個是否數字

拿到一個字串,需要判斷下是否純數字組成 方法1: 這個方法是之前一個oracle群裡的同學給寫的。直接套用過來了 這個方法是使用exception create function F_IF_NUMBER(p_str in varchar2) return num

(ORACLE)sql判斷一個是否全數字 或含有中文及統計某個中中文的個數

一、判斷一個欄位是否全數字 或含有中文update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(tran

MySQL判斷一個不包含中文

中文=2個位元組,英文或數字=1個位元組,因此我們用mysql中兩個函式比較位元組和字元的長度是否相等來判斷是否包含中文   select * from user where CHAR_LENGTH(name)=LENGTH(name)   如果想過濾掉空字串或限制下長度

如何判斷一個的內容是否全為數字

近期在專案中,由於初期設計的不足,需要清洗資料,在清洗欄位的時候需要判斷一個欄位的內容是否全都為數字。 select industry_code,industry_name from base_org

Mysql中判斷一個是不是為null注意點

       今天查詢資料的時候,要查詢某一個欄位為null的情況,第一反應就是select * from xxx where xx = NULL; 這是不對的,資料是查不出來的,正確的應該是: se

建立標量值函式判斷某個是否包含中文

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author:        <Author,,Name> --

判斷一個為null

在oracle中判斷一個欄位為空不能使用關係運算符: 例如:select  *  from  ename!=null; 或select   *    from   ename=null; 這樣是查不出結果的。 我們可以使用:is  null  和 is  not   nu

oracle資料中一個中存在多個值 進行分組統計查詢

如圖我有這樣的兩條資料  我要根據unit_name這個欄位中的多個值進行分組統計數量 我要顯示的格式如下 單位名稱        數量 測試單位        1 dd         

varchar型別的儲存數字的排序

如果表字段的型別為varchar型,但是裡面儲存的是純數字,怎麼實現按照數字的大小來排序?下面的方法對於mysql和oracle都實用order by 欄位+0order by 欄位*1等等都可以實現例子:mysql> select * from goolen ord

如何判斷一個字串是否是數字符串?

開發中會遇到string型別的資料,如:"p30"和“30”,這兩個形式的字串,如果都要獲得int型別的30,應該如何轉換呢?方法一:isNaN方式:當接受引數為非數字則返回true,為數字則返回falsevar express =require('express');var

Oracle判斷一個字串是否為全數字

1、regexp_like SELECT * FROM ( SELECT 'ABC#$&' AS data from dual UNION ALL SELECT 'AB123' AS data

oracle一個拆分成多個值(regexp_substr函式

例: select regexp_substr(p.attributename, '[^,]+',1,level) c1 from tablename p connect by level &l

關於oracle LISTAGG函式的用法(以某個相同情況下,將對應的另一個連線起來)

SELECT department_id "Dept.", LISTAGG(last_name, '; ') WITHIN GROUP (ORDER BY hire_date) "Employees" FROM employees GROUP BY d

判斷資料庫某一個用逗號分開裡面是否有重複

String[] arr = goodsList.split(",");  //先擷取按照逗號擷取 for(int i = 0;i < arr.length-1;i++){ //迴圈開始元素 for(int j = i + 1;j < arr.length;j++){ //迴圈

oracle一個先插入一條資料,在將該資料中一個更新的觸發器的坑

最近剛用使用觸發器,原理上應該是在插入之後再更新,原本以為是以下這種寫法,在網上也找了很多方法,結果說的都不太對.需要更新的欄位根本沒有被更新,我想應該是邏輯上的問題: create or replace trigger UPDATE_REDLIST_TYPE afte

[oracle] count()函式使用錯誤導致的查詢失敗(聚合函式聚合與分組不一致)

一 錯誤的SQL語句(原始的,格式是直接從word中拷貝的,存在多個錯誤): select to_char(t.fbsj, 'YYYY') as a, count(t.fbsj) from ( select fbsj from ods_t_ky_lw     where

oracle 空字串 null 和各種判斷當前是否為空

情況一: select (case when trim('      ') is not null then 'not null' else 'is null' end) as age from dual; 輸出結果:age: 'is null'  情況二:刪除trim()

將表中一個拆分成多列 oracle db2拆分

--oracle 資料庫拆分辦法 WITH TT(bbbh, USER_, sjly) AS  (SELECT 00 bbbh, '' USER_, 'a^b^c' || '^' sjly     from dual   UNION ALL   SELECT bbbh,  

Oracle 將一張表的某些更新到本條記錄的另一個

原因:是因為某張表原來的排序欄位因為並非是專門用來排序的,後來新加了一個專門用來排序的欄位,想把現在的排序欄位內容 copy 的新的欄位 ,   但是 一條一條更改 太麻煩了突然想到 oracle 好像支援這樣的寫法  於是就百度了這個函式,先寫在這裡吧 省的以後在忘了。

oracle批量更新一個表中的一個

最近遇到一個sql問題。老大們讓我把一個表中的一列資料做更新。更新的內容和對照表有給提供。後來仔細檢視資料 總結出這樣的sql 語句。 update 更新表 b set(b.需要更新的欄位) =  (select a.參考更新欄位 from 對照表 a where a.對照表