Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)
应用场景:将Oracle数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女]
主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本
操作步骤如下:
1、创建类型
create or replace type splitTable is table of varchar2(100);
2、创建函数fn_splitString(功能是将字符串分割成多条记录)
--测试语句select * from table(fn_splitString('ernanyinv','nan'))
--fn_splitString函数脚本代码
create or replace function fn_splitString(var_str in varchar2, var_split in varchar2)
return splitTable is
var_out splitTable;
var_tmp varchar2(4000);
var_element varchar2(4000);
begin
var_tmp := var_str;
var_out := splitTable();
--如果存在匹配的分割符
while instr(var_tmp, var_split) > 0 loop
var_element := substr(var_tmp, 1, instr(var_tmp, var_split) - 1);
var_tmp := substr(var_tmp,
instr(var_tmp, var_split) + length(var_split),
length(var_tmp));
--var_out.extend(1);
var_out.extend;
var_out(var_out.count) := var_element;
end loop;
--var_out.extend(1);
var_out.extend;
var_out(var_out.count) := var_tmp;
return var_out;
end fn_splitString;
3、创建函数fn_getNumber(功能是将数字拼音字符串转为数字)
--测试语句SELECT fn_getNumber('yi') from dual;
--fn_getNumber函数脚本代码
create or replace function fn_getNumber(p_str in varchar2)
return VARCHAR2
as
v_compare VARCHAR2(20);
v_return VARCHAR2(1);
begin
IF p_str IS NULL
THEN
RETURN '';
END IF;
v_compare:= Lower(p_str);
CASE
WHEN v_compare = 'yi'
THEN
v_return := '1';
WHEN v_compare = 'er'
THEN
v_return := '2';
WHEN v_compare = 'san'
THEN
v_return := '3';
WHEN v_compare = 'si'
THEN
v_return := '4';
WHEN v_compare = 'wu'
THEN
v_return := '5';
WHEN v_compare = 'liu'
THEN
v_return := '6';
WHEN v_compare = 'qi'
THEN
v_return := '7';
WHEN v_compare = 'ba'
THEN
v_return := '8';
WHEN v_compare = 'jiu'
THEN
v_return := '9';
ELSE
v_return := '0';
END CASE;
return v_return;
end fn_getNumber;
4、运行转换脚本(功能是将数据表中指定字段内容转换为所需要的格式)
--Oracle中使用游标转换数据表中指定字段内容格式由拼音到数字
--update TB_USER set NNDP='sannansinv';
--定义游标
declare
femalenumber number:=0;--定义最后的男性数量
malenumber number:=0;--定义最后的女性数量
femalestring VARCHAR2(20):='er';--定义男性拼音分割符
malestring VARCHAR2(20):='sinv';--定义女性拼音分割符
columnstring NVARCHAR2(40):=''; --定义数据表字段取出的字符串内容
resultstring NVARCHAR2(40):='';--定义最后处理的字符串
cursor mycursor is select * from TB_USER where NNDP' '; --从数据表查询对应要更新的记录:
myrecord mycursor%rowtype; --定义游标记录类型
Counter int :=0;
begin
open mycursor; --打开游标
if mycursor%isopen then --判断打开成功
loop --循环获取记录集
fetch mycursor into myrecord; --获取游标中的记录
if mycursor%found then --游标的found属性判断是否有记录
begin

本文探討了Docker中的優化MySQL內存使用量。 它討論了監視技術(Docker統計,性能架構,外部工具)和配置策略。 其中包括Docker內存限制,交換和cgroups

本文介紹了MySQL的“無法打開共享庫”錯誤。 該問題源於MySQL無法找到必要的共享庫(.SO/.DLL文件)。解決方案涉及通過系統軟件包M驗證庫安裝

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

本文比較使用/不使用PhpMyAdmin的Podman容器直接在Linux上安裝MySQL。 它詳細介紹了每種方法的安裝步驟,強調了Podman在孤立,可移植性和可重複性方面的優勢,還

本文提供了SQLite的全面概述,SQLite是一個獨立的,無服務器的關係數據庫。 它詳細介紹了SQLite的優勢(簡單,可移植性,易用性)和缺點(並發限制,可伸縮性挑戰)。 c

本指南展示了使用自製在MacOS上安裝和管理多個MySQL版本。 它強調使用自製裝置隔離安裝,以防止衝突。 本文詳細詳細介紹了安裝,起始/停止服務和最佳PRA

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)