首页 > 数据库 >检查Oracle中是否是“数字”函数,Oracle11时候,报is_number 无效的运算符,使用lenth( ) 内置函数可以执行成功

检查Oracle中是否是“数字”函数,Oracle11时候,报is_number 无效的运算符,使用lenth( ) 内置函数可以执行成功

时间:2023-09-11 10:23:55浏览次数:45  
标签:number 函数 myTable 是否是 运算符 RETURN id

检查Oracle中是否是“数字”函数
原文链接:https://www.jb51.cc/oracle/207329.html

我试图检查来自oracle(10g)查询中的列的值是否是一个数字,以便进行比较。就像是:
  1. select case when ( is_number(myTable.id) and (myTable.id >0) )
  2. then 'Is a number greater than 0'
  3. else 'it is not a number'
  4. end as valuetype
  5. from table myTable

有任何想法如何检查?

假设myTable中的ID列没有声明为NUMBER(这似乎是一个奇怪的选择,可能是有问题的),你可以写一个函数,试图将(可能是VARCHAR2)ID转换为一个数字,捕获异常,并返回“Y”或“N”。就像是
  1. CREATE OR REPLACE FUNCTION is_number( p_str IN VARCHAR2 )
  2. RETURN VARCHAR2 DETERMINISTIC ParaLLEL_ENABLE
  3. IS
  4. l_num NUMBER;
  5. BEGIN
  6. l_num := to_number( p_str );
  7. RETURN 'Y';
  8. EXCEPTION
  9. WHEN value_error THEN
  10. RETURN 'N';
  11. END is_number;

然后,您可以将该调用嵌入查询中,即

  1. SELECT (CASE WHEN is_number( myTable.id ) = 'Y' AND myTable.id > 0
  2. THEN 'Number > 0'
  3. ELSE 'Something else'
  4. END) some_alias
  5. FROM myTable

注意,虽然PL / sql一个布尔数据类型,但sql不是。所以,虽然你可以声明一个函数返回一个布尔值,你不能在SQL查询中使用这样的函数

标签:number,函数,myTable,是否是,运算符,RETURN,id
From: https://www.cnblogs.com/sunny3158/p/17692849.html

相关文章

  • ORACLE内置函数
    ORACLE内置函数原文链接:https://blog.csdn.net/m0_63300795/article/details/124473586目录一,内置函数的分类.二,转换函数三,日期函数四,字符函数五,数学函数六,聚合函数一,内置函数的分类.内置函数:Oracle自带的函数,我能只需要去调用就可以了。Oracle里面的内置函数分为......
  • §3. 参变量函数的导数
    掌握参变量方程的求导法则。记住参变量函数的求导公式,和极坐标下向径与切线的夹角的正切公式.  等角螺线、对数螺线或生长螺线是在自然界常见的螺线,在极坐标系(r,θ)中,这个曲线可以写为或  因此叫做“对数”螺线。之所以叫等角螺线,是因为在极坐标中,螺线和射线的夹角始终......
  • C++的运算符重载介绍
    所谓重载,就是赋予新的含义。函数重载(FunctionOverloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(OperatorOverloading)也是一个道理,同一个运算符可以有不同的功能。实际上,我们已经在不知不觉中使用了运算符重载。例如,+号可以对不同类型(int、float等)的......
  • 有n个整数,使前面各数顺序向后m个位置,最后m个数变成最前面m个数,见图 8.43。写一函数实
    4,有n个整数,使前面各数顺序向后m个位置,最后m个数变成最前面m个数,见图8.43。写一函数实现以上功能在主函数中输入个整数和输出调整后的n个数。我的代码:1.使用双向链表voidMoveDLink(DoubleListhead,intm,intn){/*寻找原链表第n-m个节点*/DoubleListcurrent......
  • MySQL数据库进阶 自定义函数
    自定义函数在MySQL中,您可以使用自定义函数来扩展数据库管理系统的功能。自定义函数允许您封装一段可重用的代码,并在查询和其他操作中调用它。以下是在MySQL中创建和使用自定义函数的一般步骤:1、创建自定义函数语法:CREATEFUNCTIONfunction_name(parameters)RETURNSreturn_t......
  • 无涯教程-JavaScript - DISC函数
    描述DISC函数返回有价证券的折现率。语法DISC(settlement,maturity,pr,redemption,[basis])争论Argument描述Required/OptionalSettlement证券的结算日期。证券结算日期是指在发行日期之后将证券交易给买方的日期。RequiredMaturity证券的到期日。到期日......
  • 无涯教程-JavaScript - DDB函数
    描述DDB函数使用双倍余额递减法或您指定的某些其他方法返回指定期间内资产的折旧。语法DDB(cost,salvage,life,period,[factor])争论Argument描述Required/OptionalCostTheinitialcostoftheasset.RequiredSalvage折旧结束时的价值(有时称为资产的残值)......
  • pixi.js 的头像制作功能【函数】
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><scriptsrc="https://cdn.jsdel......
  • 封装的函数小工具
    //部分为网上借用,以方便本人复查使用。//数字格式化如:123,456.78functionformatter_k(num){conststr=num.toString();//转字符串constval=str.replace(/\d+/,(n)=>{returnn.replace(/(\d)(?=(\d{3})+$)/g,($1)=>$1+",");});......
  • Golang 初识: 函数调用与定义丶字符串处理丶Json的处理
    一.基本函数调用与定义1packagemain23import(4"encoding/json"5"errors"6"fmt"7"math/rand"8"mylib/pkg/student"9"mylib/pkg/utils"10"sort"11......