oracle字段大段字符串,ORACLE存储过程,参数目字符串太长
ORACLE存储过程,参数字符串太长
在做存储过程开发的时候,需要拼SQL语句,比如
DECLARE
V_SQL VARCHAR2(32000);
BEGIN
V_SQL := 'INSERT INTO TB_TA(COUNTER0001,COUNTER0002.......COUNTER1000)
SELECT
公式1,
公式2,
......
公式10000
from
TB_BASE BASE
LEFT JOIN TB_COUNTER0001 T0001 ON T0001.A = BASE.A
LEFT JOIN TB_COUNTER0002 T0002 ON T0002.A = BASE.A
......
LEFT JOIN TB_COUNTER1000 T1000 ON T1000.A = BASE.A';
EXECUTE IMMEDIATE V_SQL;
COMMIT;
END;
但是这个SQL语句很大很大,绝对的超过了32767限制,而且就算拆成小段也会超过,比如这么拆:
DECLARE
V_INSERT VARCHAR2(32000);
V_FORMATE VARCHAR2(32000);
V_TABLE VARCHAR2(32000);
BEGIN
V_INSERT := '(COUNTER0001,COUNTER0002.......COUNTER1000)';
V_FORMATE := '公式1,公式2,......公式10000';
V_TABLE := '
LEFT JOIN TB_COUNTER0001 T0001 ON T0001.A = BASE.A
LEFT JOIN TB_COUNTER0002 T0002 ON T0002.A = BASE.A
......
LEFT JOIN TB_COUNTER1000 T1000 ON T1000.A = BASE.A';
EXECUTE IMMEDIATE 'INSERT INTO TB_TA' || V_INSERT ||
'SELECT'||
V_FORMATE ||
'from
TB_BASE BASE' || V_TABLE;
EXECUTE IMMEDIATE V_SQL;
COMMIT;
END;
V_FORMATE就已经超过了,现在已经不知所措,问问大侠有没有方法可以解决。
我自己有个设想,就是把这些丢到BOLB里面去,
然后写一个函数FUN_BOOLTOVARCHAR2,
然后执行
EXECUTE IMMEDIATE FUN_BOOLTOVARCHAR2(BOLB_SQL);
COMMIT;
但是不知道可行性怎么样?
请各位大侠看看!
拜谢!!
------最佳解决方案--------------------
1 CLOB就可以了
2 长SQL面临解析的问题,不是存个字符串就能搞定的。
------其他解决方案--------------------
引用:1 CLOB就可以了
2 长SQL面临解析的问题,不是存个字符串就能搞定的。
大侠
可以直接
DECLARE
CLOB_SQL CLOB;
BEGIN
EXECUTE IMMEDIATE CLOB_SQL;
END;
这样么?
没有用过CLOB。。。
------其他解决方案--------------------
好吧 问题已经解决了 谢谢
oracle字段大段字符串,ORACLE存储过程,参数目字符串太长相关推荐
- oracle回滚段创建,Oracle回滚段管理
Oracle回滚段管理 回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头 ...
- 小程序 url 对象转字符串编码传参 url 字符串转对象解码接收参数
url 对象转字符串编码传参 let info = encodeURI(JSON.stringify(this.data.info));wx.navigateTo({url: '/pages/part ...
- oracle字段公式怎么执行,Oracle 在存储过程或函数中执行字符串sql PDF 下载
主要内容: 有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCOR ...
- oracle 建表字段设置,Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结...
关于Oracle创建表.删除表.修改表(添加字段.修改字段.删除字段)语句的简短总结. Oracle创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字 ...
- oracle字段名命名规范,oracle 表字段命名规范
命名一律为大写字母(或小写,不要大下写混合)英文单词单数命名.例:FACTORY 英文单词缩写命名.例:DEPT 英文单词之间用下划线连结,且每个单词皆为单数.例:TASK_RESULT 用来存储历史 ...
- oracle字段逗号拆分,Script:oracle拆分逗号分隔字符串 实现split
如果一个字符串中有像逗号或其它符号分隔,你想把它折分成列,如'first field, second field , third field', 拆成 first field second field ...
- windows oracle 内存大,如何设计Oracle数据库内存的大小
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享.它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写 ...
- oracle 字段加密解密方法,oracle 字段加密解密方法
要用到DECRYPT方法对数据解密和ENCRYPT方法加密 1.首先通过sys用户登录到oracle数据库,因为我们要通过这个用户来设置一些高级权限 grant execute on DBMS_cry ...
- oracle设置大表空间,Oracle怎样设置表空间数据文件大小
这篇文章主要介绍了Oracle如何设置表空间数据文件大小,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下 Oracle数据文件默认大小上限是32G,如果要数据文件大于32G,需要在 ...
最新文章
- 销售必备心灵鸡汤(转)
- 谈SOA在国内推进状况
- 【IBatisNet Spring.Net】ORM与IOC 简单配置
- 基于高斯分布的异常检测算法 项目描述
- SpringBoot 工程目录 整合mybatis-mysql(注解类型)
- [论文阅读] Scene Context-Aware Salient Object Detection
- 学 shell (1/5)
- Git教程——为什么要掌握Git以及Git的安装
- Linux Shell 中 ()、(())、[]、[[]]、{} 的作用
- android时间显示秒,MIUI 12桌面如何显示带秒时钟?
- 纯js实现类似淘宝星级评分功能
- 完美池宇峰畅谈创业点滴 男怕入错行
- 直播源代码中关于手机直播平台开发的登陆注册介绍
- 那些年的,那些人的,那些事。
- 给你的数据加上杠杆:文本增强技术的研究进展及应用实践
- 数据独立性(物理独立性+逻辑独立性)
- linux之修改静态ip,修改网卡名称为eth0,以及iso装系统后的配置ip
- Nginx+FFmpeg rtsp转flv实时预览
- 硬件检测新锐:Z武器
- CCNA lab 随身日记之OSPF
热门文章
- c程序设计语言_习题8-4_重新实现c语言的库函数fseek(FILE*fp,longoffset,intorigin)
- 动态修改迅雷的下载地址
- HDFS之SequenceFile和MapFile
- RunnableException与CheckedException
- 【java】staitc
- 负载均衡策略深入剖析
- html 复选框 mysql_Html:实现带复选框的下拉框(一)
- github创建静态页面_如何在10分钟内使用GitHub Pages创建免费的静态站点
- keras bi-lstm_LSTM用于文本生成的应用介绍-使用Keras和启用GPU的Kaggle Kernels
- linux内核功能有,好消息!LINUX内核2.6.18终于支持实时功能了