貌似to_clob也不行,看看tom这个

You Asked

Can you perform string functions on the datatype LONG?

and we said...

In PLSQL yes -- in SQL no.

If the long is 32k or less, you can do some interesting things in PLSQL.  Lets say you

have a table T with a long column like this:

ops$tkyte@8i> create table t ( x int, y long );

Table created.

ops$tkyte@8i> insert into t values ( 1, 'how now brown cow' );

1 row created.

ops$tkyte@8i> select substr( y, 1, 5 ) from t;

select substr( y, 1, 5 ) from t

*

ERROR at line 1:

ORA-00932: inconsistent datatypes

ops$tkyte@8i> create or replace function t_substr

( p_rowid in rowid,

p_from in number,

p_for in number ) return varchar2

2  as

3          l_str   long;

4  begin

5          select y into l_str from t where rowid = p_rowid;

6

7          return substr( l_str, p_from, p_for );

8  end;

9  /

Function created.

ops$tkyte@8i> select t_substr( rowid, 1, 5 ) from t;

T_SUBSTR(ROWID,1,5)

------------------------------

how n

So, for longs that are 32k or less, we can write functions that are callable in SQL to

allow us to do some operations on these long columns.

Additionally -- we can use dbms_sql to READ longs (but not write) them that are of any

size.  We would piecewise read them.  You cannot call a function that uses dbms_sql from

SQL as  did above but you can use it in any other procedure/function you write.  Here is

an example of a piecewise read of a long in plsql:

create or replace procedure showlong( p_query in varchar2 )

as

l_cursor    integer default dbms_sql.open_cursor;

l_n         number;

l_long_val  varchar2(250);

l_long_len  number;

l_buflen    number := 250;

l_curpos    number := 0;

begin

dbms_sql.parse( l_cursor, p_query, dbms_sql.native );

dbms_sql.define_column_long(l_cursor, 1);

l_n := dbms_sql.execute(l_cursor);

if (dbms_sql.fetch_rows(l_cursor)>0)

then

loop

dbms_sql.column_value_long(l_cursor, 1, l_buflen, l_curpos ,

l_long_val, l_long_len );

l_curpos := l_curpos + l_long_len;

dbms_output.put_line( l_long_val );

exit when l_long_len = 0;

end loop;

end if;

dbms_output.put_line( '====================' );

dbms_output.put_line( 'Long was ' || l_curpos || ' bytes in length' );

dbms_sql.close_cursor(l_cursor);

exception

when others then

if dbms_sql.is_open(l_cursor) then

dbms_sql.close_cursor(l_cursor);

end if;

htp.preClose;

raise;

end showlong;

/

set echo on

begin

showlong( 'select text from all_views where rownum = 1' );

end;

/

oracle怎么截取long类型,如何把long类型的值取出来相关推荐

  1. oracle clob截取_Oracle数据库设计规范建议

    Oracle-数据库设计规范建议 来源于项目资料 目的 本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦:同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质 ...

  2. ORACLE字符串截取函数trim(),ltrim(),rtrim()

    1.TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1). 看起来很复杂,理解起来很简单: (1)如果没有指定任何参数则oracle去除c1头尾空格 例如:SELE ...

  3. Oracle预定义的21个系统异常类型

    Oracle预定义的21个系统异常类型 参考文章: (1)Oracle预定义的21个系统异常类型 (2)https://www.cnblogs.com/lonelywolfmoutain/p/4234 ...

  4. oracle有几种类型表空间,oracle 数据创建时如何指定表空间类型

    oracle建表时指定了表空间为何没起作用? oracle 12c /windows ,实验过程如下: 1.建第一个表空间data_tbs_01,数可以直接在创建语句后面追加"tablesp ...

  5. oracle怎么从右边截取,Oracle 字符串截取 从后向前截取方法

    Oracle 字符串截取 从后向前截取方法 INSTR:INSTR方法的格式为 INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 默认查找顺序为从左到右.当起始位置为负数的时候,从右边开始 ...

  6. oracle将其他字段类型改为clob类型方法

    oracle将其他字段类型改为clob类型方法 FIELD_INSTANCE 表名 FIELD_STRING_VALUE 字段名 第一步:添加一个clob类型的字段 alter table FIELD ...

  7. Oracle/MSSQL/Mysql 常用数据库的字段类型及大小

    Oracle/MSSQL/Mysql 常用数据库的字段类型及大小 ORACLE的数据类型 常用的数据库字段类型如下:   字段类型   中文说明   限制条件   其它说明   CHAR  固定长度字 ...

  8. 常见oracle数据类型及其在java中的对应类型

    SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型 1.0标准的JDBC类型: CHAR java.sql.Types.CHAR java.lang.String o ...

  9. 查询oracle表中的字段名和字段类型

    查询oracle表中的字段名和字段类型 SELECT b.column_name column_name --字段名,b.data_type data_type --字段类型,b.data_lengt ...

  10. 无法将类型为“Oracle.DataAccess.Client.OracleParameter”的对象强制转换为类型

    无法将类型为"Oracle.DataAccess.Client.OracleParameter"的对象强制转换为类型"Oracle.DataAccess.Client.O ...

最新文章

  1. 【FFmpeg】RTSP、RTMP相关命令及开源项目
  2. 广联达5代锁与4代锁有何区别_BVVB是什么线?BV与BVVB有何区别?
  3. 深入理解Java:注解
  4. 使用Spring MVC应用程序配置嵌入式H2控制台
  5. url 函数 php,php中url处理函数总结
  6. NGUI_2.6.3_系列教程三
  7. 展示全面快速响应能力 华为全线解决方案亮相北京国际通信展
  8. BP神经网络预测实例(matlab代码,神经网络工具箱)
  9. 电力电子转战数字IC20220610day21——杂七杂八
  10. 华为USG6000防火墙基础配置简介
  11. 网络视频广告今年起步
  12. 地铁视频监控系统中无线监控技术的应用
  13. MongoDB中shell基本使用
  14. Maven项目集成cxf框架发布WebService
  15. MATLAB 仿真 n年后的比例,基于Matlab的比例导引弹道仿真分析.PDF
  16. Spark Streaming架构介绍_大数据培训
  17. android 应用图标 角标 显示未读消息
  18. x264中码率控制(二)x264_ratecontrol_start函数
  19. linux SSD 硬盘优化
  20. visio和preject冲突_Office 365 和 Visio Project Pro 2019 共存安装方法

热门文章

  1. 孤独的根号三 (Missing NUMBER)
  2. 关于fiddle开启https证书协议源码
  3. 用计算机教学体育,体育教学中计算机的应用
  4. 谈小学计算机教学,浅谈小学计算机教学方法
  5. macbook pro下载速度慢的解决方法
  6. 什么是 P2P、P2C 、O2O 、B2C、B2B、 C2C
  7. 尝试说透网关和路由器的异同
  8. iPad 上播放 2160p (4K) mkv 视频的方法
  9. php网站banner图片切换,最简单的Banner轮播左右切换效果代码及实现思路(附带源码)...
  10. Saas平台接入商户代小程序开发解决方案