首页 > 数据库 >Oracle自定义函数:生成汉字首字母拼音码的函数、MD5

Oracle自定义函数:生成汉字首字母拼音码的函数、MD5

时间:2025-01-14 14:54:59浏览次数:1  
标签:return 函数 自定义 union chn 首字母 varchar2 dual select

1 生成汉字拼音码的函数

使用方法:

select 用户名.函数名(需要获取首字母拼音码的字段名) from 用户名.表名;
select oracle_user1.fgetpy(t.name) from oracle_user1.student t;

函数定义:

create or replace function fgetpy(v_str varchar2) return varchar2 as
  v_strlen int;
  v_return varchar2(500);
  v_ii     int;
  v_n      int;
  v_c      varchar2(2);
  v_chn    varchar2(2);
  v_rc     varchar2(500);
  /*************************************************************************
  生成汉字拼音码的函数。 2009-06-21
  **************************************************************************/
begin
  --dbms_output.put_line(v_str);
  v_rc     := v_str;
  v_strlen := length(v_rc);
  v_return := '';
  v_ii     := 0;
  while v_ii < v_strlen loop
    v_ii := v_ii + 1;
    v_n  := 63;
    select substr(v_rc, v_ii, 1) into v_chn from dual;
    select v_n + max(rowsf)
      into v_n
      from (select chn, rownum rowsf
              from (select chn
                      from (select '吖' chn
                              from dual
                            union
                            select '八'
                              from dual
                            union all
                            select '嚓'
                              from dual
                            union all
                            select '咑'
                              from dual
                            union all
                            select '妸'
                              from dual
                            union all
                            select '发'
                              from dual
                            union all
                            select '旮'
                              from dual
                            union all
                            select '铪'
                              from dual
                            union all
                            select '丌'
                              from dual --because have no 'i'
                            union all
                            select '丌'
                              from dual
                            union all
                            select '咔'
                              from dual
                            union all
                            select '垃'
                              from dual
                            union all
                            select '嘸'
                              from dual
                            union all
                            select '拏'
                              from dual
                            union all
                            select '噢'
                              from dual
                            union all
                            select '妑'
                              from dual
                            union all
                            select '七'
                              from dual
                            union all
                            select '呥'
                              from dual
                            union all
                            select '仨'
                              from dual
                            union all
                            select '他'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '屲'
                              from dual
                            union all
                            select '夕'
                              from dual
                            union all
                            select '丫'
                              from dual
                            union all
                            select '帀'
                              from dual
                            union all
                            select v_chn
                              from dual) a
                     order by nlssort(chn, 'NLS_SORT=SCHINESE_PINYIN_M')) c) b
     where chn = v_chn;
    v_c := chr(v_n);
    if chr(v_n) = '@' then
      --英文直接返回
      v_c := v_chn;
    end if;
    v_return := v_return || v_c;
    v_return := lower(v_return);
  end loop;
  return v_return;
end fgetpy;

2 MD5

使用方法:

select 用户名.函数名(需要加密的字段名) from 用户名.表名;
select oracle_user1.md5(t.id) from oracle_user1.student t;

函数定义:

create or replace function md5(passwd in varchar2) return varchar2 is
  retval varchar2(32);
begin
  retval := utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => passwd));
  return retval;
end;

标签:return,函数,自定义,union,chn,首字母,varchar2,dual,select
From: https://www.cnblogs.com/daytoy105/p/18670737

相关文章

  • 【C语言】_字符函数
    目录1.字符分类函数1.1相关函数及其功能1.2使用示例2.字符转换函数2.1相关函数及其功能2.2使用示例1.字符分类函数1.1相关函数及其功能函数其参数符合下列条件则返回真iscntrl任何控制字符isspace空白字符:空格'';换页'\f';换行:'\n';回车:'\r';制表符:'\t';垂直制......
  • Origin 自定义公式拟合
    非线性拟合选中数据-绘图-分析-拟合-非线性曲线拟合-打开对话框-新建函数-函数命名-输入函数表达式,如y=a*x^2,即可。若公式中涉及到复数,则使用ImReal()取实部,Imaginary()取虚部,Imsqrt()取开方。如色散方程取实部,即色散部分进行拟合,则相应的Origin拟合......
  • C++学习 函数章节
    3函数默认参数。在C++中,函数形参列表中的形参是可以有默认值的。语法:b和c有默认值,但如果之歌值传了,还会用传入的值。注意事项:如果某个位置已经有默认值,那么从左往右必须有默认值。2.如果函数声明有默认参数,函数实现就不能有默认参数,也可以实现函数有,声明没有。(避免声明函数......
  • 【操作系统---Linux】Linux编程中最常用的控制线程的函数(内附手绘底层逻辑图 通俗易懂
    绪论​每日激励:“不设限和自我肯定的心态:Icandoallthings。—StephenCurry”绪论​:本章是继承上一章线程基础,本章将结合代码和逻辑图的方式带你去认识和了解控制线程中常用的函数这些函数对后面的开发以及对线程底层的了解都非常的重要,后续将继续更新Linux线......
  • 函数计算助您 7 分钟极速部署开源对话大模型
    本方案将借助阿里云函数计算,您能够迅速部署并利用来自魔搭社区(ModelScope)的开源大模型,实现高效便捷的大模型服务应用。只需短短10分钟,即可将这些强大模型部署至阿里云函数计算平台,立即开启您的文本生成服务之旅。无需自备或维护高昂的GPU资源,函数计算的按需付费模式让您无需......
  • 鸿蒙开发 - 自定义组件 和 组件通信的方法
    自定义组件的基本结构@Entry@ComponentstructMyComponent{build(){//...}}build()函数build()函数用于描述组件的UI界面,自定义组件必须定义build()函数build(){Column(){Text('测试')Button('点击')}}struct关键字strcut用来......
  • 15. C语言 函数指针与回调函数
    本章目录:前言什么是函数指针?定义声明方式函数指针的基本用法示例:最大值函数输出示例:回调函数与函数指针什么是回调函数?通俗解释示例:回调函数实现动态数组填充输出示例:进一步探索:带参回调函数输出示例:函数指针的进阶技巧函数指针数组返回函数指针的函数输出示例:......
  • 写一个函数找出给定数组中的最大差值
    在前端开发中,JavaScript是一种常用的编程语言,因此我将使用JavaScript来写一个函数,该函数可以找出给定数组中的最大差值。这里我们假设“最大差值”是指数组中最大值与最小值之间的差。functionfindMaxDifference(arr){//检查数组是否为空if(arr.length===0){......
  • 界面控件 DevExpress v24.2 新版亮点 - 自定义和扩展 AI 驱动的扩展
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力......
  • R语言caret包的resamples函数比较在同一数据集上多个机器学习模型的比较结果实战、sum
    R语言caret包的resamples函数比较在同一数据集上多个机器学习模型的比较结果实战、使用summary函数比较模型的汇总信息、使用lattice包的bwplot函数使用箱图对比多个模型在多个指标上的性能差异目录R语言使用caret包的resamples函数比较在同一数据集上多个机器学习模型的比......