每行显示固定字符串,截取字符串

方法一:在循环里面输出
DECLARE
  l_char          VARCHAR2 (3000 )
:= 'ORACLEEB电子商务套件SSYSTEMghtest' ;
  l_length        NUMBER ;
  l_line_char     VARCHAR2 (1000 ); --每一个字符
  l_lengthb       NUMBER ; --每一个字符的字节长度,汉字变成2个
  l_lengthb_total NUMBER := 0 ; --字节长度:汉字算2个
  l_char_display  VARCHAR2 (1000 ); --换行显示的字符
BEGIN
  l_length := length (l_char);
  dbms_output.put_line( 'l_length:' ||
l_length);
  FOR i IN 1 ..
l_length LOOP
    SELECT substr (l_char,
i, 1) INTO l_line_char FROM dual;
    --dbms_output.put_line('l_line_char:'||l_line_char);
    IF lengthb (l_line_char)
= 3 THEN
      --汉字
      l_lengthb := 2 ;
    ELSE
      l_lengthb := 1 ;
    END IF ;
    l_lengthb_total := l_lengthb_total + l_lengthb;
    l_char_display  := l_char_display || l_line_char;
    IF l_lengthb_total
= 12 THEN
      --l_char_display
:= l_char_display || CHR(10);
      --12位换行显示
      dbms_output.put_line( 'l_char_display:' ||
l_char_display);
      l_lengthb_total := 0 ;
      l_char_display  := NULL ;
    END IF ;
  END LOOP ;
  dbms_output.put_line( 'l_char_display:' ||
l_char_display);
END ;

输出:
l_char_display:ORACLEEB电子
l_char_display:商务套件SSYS
l_char_display:TEMghtest

二、使用回车符
DECLARE
  l_char          VARCHAR2 (3000 )
:= 'ORACLEEB电子商务套件SSYSTEMghtest' ;
  l_length        NUMBER ;
  l_line_char     VARCHAR2 (1000 ); --每一个字符
  l_lengthb       NUMBER ; --每一个字符的字节长度。汉字变成2个
  l_lengthb_total NUMBER := 0 ; --字节长度:汉字算2个
  l_char_display  VARCHAR2 (1000 ); --换行显示的字符
BEGIN
  l_length := length (l_char);
  FOR i IN 1 ..
l_length LOOP
    SELECT substr (l_char,
i, 1) INTO l_line_char FROM dual;
    --dbms_output.put_line('l_line_char:'||l_line_char);
    IF lengthb (l_line_char)
= 3 THEN
      --汉字
      l_lengthb := 2 ;
    ELSE
      l_lengthb := 1 ;
    END IF ;
    l_lengthb_total := l_lengthb_total + l_lengthb;
    l_char_display  := l_char_display || l_line_char;
    IF l_lengthb_total
= 12 THEN
      l_char_display := l_char_display || CHR (10 );
      --12位换行显示
      l_lengthb_total := 0 ;
    END IF ;
  END LOOP ;
  dbms_output.put_line( l_char_display);
END ;

输出:
ORACLEEB电子
商务套件SSYS
TEMghtest

ORACLE截取字符串的更多相关文章

  1. Oracle 截取字符串(截取固定分隔符中间的字符

    #### Oracle 截取字符串(截取固定分隔符中间的字符) #### ####  oracle 取固定分隔符之间的字符--方法一 substr+ instrSELECT  substr('12JP ...

  2. Oracle截取字符串函数和查找字符串函数,连接运算符||

    参考资料:Oracle截取字符串和查找字符串 oracle自定义函数学习和连接运算符(||) oracle 截取字符(substr),检索字符位置(instr) case when then else ...

  3. oracle截取字符串,定索引

    转载:https://www.cnblogs.com/qmfsun/p/4493918.html 使用Oracle中Instr()和substr()函数: 1 2 3 4 5 6 7 8 9 10 1 ...

  4. Oracle截取字符串和查找字符串

    oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,s ...

  5. oracle截取字符串区间段的一部分字符串

    Oracle SQL中实现indexOf和lastIndexOf功能,substr和instr用法 博客分类: oracle PL/SQL instrsubstrlastindexofindexofo ...

  6. oracle截取字符串去掉字段末尾指定长度的字符

    lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 eg: //去掉该 ...

  7. [转]Oracle截取字符串相关函数

    转至:http://www.cnblogs.com/qmfsun/p/4493918.html 1.instr(sourceString,destString,start,appearPosition ...

  8. Oracle 截取字符串

    如下有一个创建函数的代码,是将一穿字符串按照逗号‘,’分割成若干段 create or replace function SplitStringByComma(aName in varchar2) r ...

  9. oracle正则截取字符串的函数

    现在有这么一个需求, 数据库中的一个手输的'籍贯'字段,要按一定的规范截取显示在报表上,比如,如果'籍贯'的内容是:'山东省潍坊市昌乐县', 那么报表里要显示为:'山东昌乐', 如果'籍贯'是山东省潍 ...

随机推荐

  1. Java IO 学习(五)跟踪三个文件IO方法的调用链

    假设我们想要用Java读取一个二进制文件,有好几种方式,本文会选取其中比较典型的三种方式进行详细分析 0. 准备工作 安装openjdk-1.8.0.141(普通的jdk中涉及IO的很多代码是闭源的, ...

  2. Codeforces Round #325 (Div. 2) Phillip and Trains dp

    原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...

  3. [BZOJ 1037] 生日聚会Party

    Link: BZOJ 1037 传送门 Solution: 由于对任意一段都有要求,于是我们对于所有前缀考虑其后缀不超过$k $即可: 设$dp[i][j][x][y]$为前$i$个人中有$j$个男孩 ...

  4. POJ3294 Life Forms(二分+后缀数组)

    给n个字符串,求最长的多于n/2个字符串的公共子串. 依然是二分判定+height分组. 把这n个字符串连接,中间用不同字符隔开,跑后缀数组计算出height: 二分要求的子串长度,判断是否满足:he ...

  5. 最近公共祖先 Least Common Ancestors(LCA)算法 --- 与RMQ问题的转换

    [简介] LCA(T,u,v):在有根树T中,询问一个距离根最远的结点x,使得x同时为结点u.v的祖先. RMQ(A,i,j):对于线性序列A中,询问区间[i,j]上的最值.见我的博客---RMQ - ...

  6. TranslateAnimation详解 Android动画。

    TranslateAnimation详解 Android JDK为我们提供了4种动画效果,分别是: AlphaAnimation,RotateAnimation, ScaleAnimation, Tr ...

  7. C++多重继承时调用相应的父类函数

    C++中没有super或parent关键字,想要调父类方法,只能使用明确的[父类名称::方法名] 假如要求A和B是C的父类的前提下,要使如下代码能够分别输出A和B的相关信息(虽然这个要求很少遇到... ...

  8. WebStrom配置多个项目的Dweployment时,设置默认的启动配置

    有时候,我们在WebStrom中打开多个项目,但是每个项目可能的Deployment的配置不同,所以每次在项目中时,可能打开的网页并不对.所以需要设置默认的启动的Deployment.下面的内容是设置 ...

  9. ios frame,bound和center

    frame:指的是视图在父视图的坐标系统中的大小和位置. bound:指的是视图在试图本身的坐标系统中的大小(位置起点是原点). center:指的是视图在父视图坐标系统中的中心点. 贴张苹果官网的图 ...

  10. WEB安全漏洞与防范

    1.XSS 原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的.如,盗取用户Cookie信息.破坏页面结构.重定向到其 ...