热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用TQuery批量执行Oracle的PL*SQL语句?

declarepi_campaignInteger;pi_tasks_noInteger;pn_error_noInteger;pvc_error_infovarcha
declare 
pi_campaign Integer; 
pi_tasks_no Integer; 
pn_error_no Integer; 
pvc_error_info varchar2(254); 
begin 
pi_campaign:=2;
sp_insert('0', pi_campaign, '', null, '', '', '', '', '', null, null, '', '', 0, 'email:', '0', '', '', '', 'text', 'abcdefghijklmnopqrstuvwx', 'memo', pi_tasks_no, pn_error_no, pvc_error_info);
end;
如何用TQuery执行?

10 个解决方案

#1


不会,帮up

#2


有没有哪为大侠可以帮帮忙?

#3


没办法的,写成存储过程吧

#4


至少你要说明你的sp_insert的结构吧
你是想批量执行sql语句还是想批量插入数据?还是象怎么样啊?
还是你把sql语句存在一个地方,然后批量执行?
不明白,如果你是想批量执行,那么可以循环给tquery.sql赋值,循环执行

#5


Query.SQl.Add('declare 
pi_campaign Integer; 
pi_tasks_no Integer; 
pn_error_no Integer; 
pvc_error_info varchar2(254); 
begin 
pi_campaign:=2;
sp_insert('''+'0'+''''+', pi_campaign, '''+''+''''+', null, '''+''+''''+', '''+''+''''+', '''+''+''''+', '''+''+''''+', '''+''+''''+', null, null, '''+''+''''+', '''+''+'''', 0, '''+'email:'+''''+', '''+'0'+''''+', '''+''+''''+', '''+''+''''+', '''+''+''''+', '''+'text'+''''+', '''+'abcdefghijklmnopqrstuvwx'+''''+', '''+'memo'+''''+', pi_tasks_no, pn_error_no, pvc_error_info);
end;
');

一堆引号,看起来头都晕了,不喜欢这种方式,可以用参数,更明了一些。
不管SQL语句的多少(无返回值),原则上都可以把它作为一个SQL语句使用SQL.add后在Query上运行。

#6


我就想执行一次呀。我是这样写:sql := '上面的语句';
Query.Active := false;
Query.SQL.Clear;
Query1.Sql.Add(sql);
Query1.ExecSQL;

这样执行它报错,但是我把里面的sql放到Toad上面执行是可以通过的。

#7


to:zzllabc(抱朴子--清心释累,绝率忘情)如果用参数该如何写?给个例子看看好吗?

#8


最好不要去设Query.Active 属性,默认的false 就行了
 用query.close去代替Query.Active := false;
Query.close;
Query.SQL.Clear;
Query1.Sql.Add(sql);
Query1.ExecSQL;
应该不会有问题的,除非就是sql的错。

#9


query.close;
query.sql.clear;
query.sql.add(...........);
query.prepare;
query.open;

#10


你是要执行「sp_insert」吧? 要用TADOStoredProc控件。

//在執行前、先加参数定義
ADOStoredProc1.Parameters.Clear; //清空参数列表
with ADOStoredProc1.Parameters.AddParameter do 
begin
  Name := 'pi_campaign';
  DataType := ftInterger;
  Direction := pdInput;  //in(輸入参数) 
end;
{...}
with ADOStoredProc1.Parameters.AddParameter do 
begin
  Name := 'pvc_error_info';
  DataType := ftString;
  Direction := pdOutput; //out(輸出参数)
  Size := 254;
end;

with ADOStoredProc1 do
begin
  Prepared := True;
  Parameters.ParamByName('pi_campaign').Value := 2; //入参
  ExecProc; //執行
  返回値 := Parameters.ParamByName('pvc_error_info').Value; //出参
  {...}
end;

説明:用静態方式把「sp_insert」接到「ADOStoredProc1」的「ProcedureName」上

推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
author-avatar
l彡id夏日阳光
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有