首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从ant脚本调用PL/SQL过程不运行存储过程

从ant脚本调用PL/SQL过程不运行存储过程
EN

Stack Overflow用户
提问于 2013-12-17 06:06:15
回答 2查看 2.1K关注 0票数 0

我从ant脚本调用PL/SQL过程。在输出窗口中,它显示“生成成功”,但是存储过程proc.sql不执行。

下面是我的构建脚本:

代码语言:javascript
运行
AI代码解释
复制
<target name="DATA">

 <property name="oracle.scriptPath" value="D:\\ganganshu" />

 <property name="oracle.tns_alias2" value="wind"/>
 <!-- Oracle user name -->
 <property name="oracle.user_name2" value="SILO2" />
 <!-- Oracle Password -->
 <property name="oracle.password2" value="SILO2" />

 <exec executable="sqlplus" failonerror="true">
  <arg value="${oracle.user_name2}/${oracle.password2}@${oracle.tns_alias2}"/>
  <arg value="@${oracle.scriptPath}\\ELEM10_ELEM_PHX_WTPART.sql"/>
  <arg value="@${oracle.scriptPath}\\proc.sql"/>
 </exec>

</target>

我的存储过程是:

代码语言:javascript
运行
AI代码解释
复制
create or replace 
PROCEDURE ELEM10_ELEM_PHX_ATT_WTPART
AS
CURSOR targ_dest_relation IS
    SELECT sourcecolumn  FROM mapping where destinationtable='ATT_WTPART';
BEGIN

DECLARE
source_Table varchar2(255) := 'ELEM10_ELEM_PHX';
destination_Table varchar2(255) := 'ATT_WTPART';
src_Column varchar2(255);
src_Type varchar2(255);
src_Type_Value varchar2(255);
src_Name varchar2(255);
src_Name_Value varchar2(255);
dest_Column varchar2(255);
dest_Column_Value varchar2(255);
query1 varchar2(255);

BEGIN

    FOR rec IN targ_dest_relation loop
           dbms_output.put_line('destination_Table: ' || destination_Table);
           dbms_output.put_line('source_Table: ' || source_Table);

           src_Column :=  rec.sourcecolumn;
           dbms_output.put_line('src_Column: ' || src_Column);

           src_Type := 'select data_type from user_tab_columns where 
           table_name ='''||source_Table||'''and column_name='''|| 
           src_Column ||'''';
           dbms_output.put_line('src_Type: ' || src_Type);

           execute immediate src_Type INTO src_Type_Value;
           dbms_output.put_line('src_Type_Value: ' || src_Type_Value);

           dest_Column := 'select DEST_COLUMN from ATT_TABLE_MAPPING where 
           SOURCETYPE='''|| src_Type_Value || '''';
           dbms_output.put_line('dest_Column: '  || dest_Column);

           execute immediate dest_Column INTO dest_Column_Value;
           dbms_output.put_line('dest_Column_Value: ' || dest_Column_Value);

           src_Name := 'select column_name from user_tab_columns where 
           table_name ='''|| source_Table ||'''  and column_name= ''' || 
           src_Column || '''';
           dbms_output.put_line('src_Name: ' || src_Name);

           execute immediate src_Name INTO src_Name_Value;
           dbms_output.put_line('src_Name_Value: ' || src_Name_Value);

           EXECUTE IMMEDIATE 'INSERT INTO ' || destination_Table || ' (IBANAME,' ||
           dest_Column_Value || ') SELECT :name,' || src_Column || 
           ' FROM ' || source_Table  USING src_Name_Value;

    END loop;  
END;
END;

为什么这不运行存储过程?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 08:41:29

在Ant脚本中,您尝试用一个sqlplus执行两个文件,但这不起作用。sqlplus只执行第一个文件而忽略第二个文件。如果希望在两个不同的文件中创建过程和执行,则必须运行两次sqplus。否则,您的Ant脚本对我来说还可以。

下面是一个示例,说明如何使用单个sqlplus运行创建、执行和删除过程。

所有东西都在foo.sql文件中

代码语言:javascript
运行
AI代码解释
复制
$ cat foo.sql 
-- just for demonstration with dbms_output
set serveroutput on

-- create procedure
create or replace procedure foo is
begin
  dbms_output.put_line('Hello!');
end;
/
show errors

-- execute procedure
exec foo

-- remove procedure
drop procedure foo;

-- exit sqlplus
exit

sqlplus执行:

代码语言:javascript
运行
AI代码解释
复制
$ sqlplus -L joe/joe @foo.sql

SQL*Plus: Release 11.2.0.2.0 Production on Tue Dec 17 16:31:20 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production


Procedure created.

No errors.
Hello!

PL/SQL procedure successfully completed.


Procedure dropped.

Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 -     64bit Production
$  
票数 1
EN

Stack Overflow用户

发布于 2013-12-17 06:44:30

试着在结尾处添加:

代码语言:javascript
运行
AI代码解释
复制
/
EXECUTE ELEM10_ELEM_PHX_ATT_WTPART;
/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20636283

复制
相关文章
ASP.NET将Session保存到数据库中
因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的 几个方式(本文不作介绍),要将Session保存到SQL Server中,需要有以下几个步骤: 1.首先要创建用于保存Session数据的数据库,以命令行的形式用aspnet_regsql.exe来完成,具体命令为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.5072
磊哥
2018/04/26
2.6K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
我们不仅可以创建相应的模板来根据Model元数据控制种类型的数据在UI界面上的呈现方法,还可以通过一些扩展来控制Model元数据本身。在某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我
蒋金楠
2018/01/15
4.9K0
ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
测试驱动 ASP.NET MVC Keith Burnell 下载代码示例 模型-视图-控制器 (MVC) 模式的核心是将 UI 功能划分成三个组成部分。模型表示您的领域的数据和行为。视图管理模型的显示并且处理与用户的交互。控制器协调视图和模型之间的交互。通过这样将本质上就难于测试的 UI 逻辑与业务逻辑分离开来,使得使用 MVC 模式实现的应用程序非常易于测试。在本文中,我将论述用于增强您的 ASP.NET MVC 应用程序的可测试性的最佳做法和技术,包括如何建立您的解决方案的结构、设计代码架构以便处理依
张善友
2018/01/22
5.5K0
ASP.NET MVC 4 - 测试驱动 ASP.NET MVC
ArrayList List<T> T[] Array
不保证会对 ArrayList 排序。 在执行需要对 ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。
lulianqi
2018/08/30
4230
ArrayList List<T> T[] Array
js 将数据保存到本地
name 文件名 data 数据 type mime类型 saveAs: function (name, data, type) { const element = document.createElementNS("http://www.w3.org/1999/xhtml", "a"), ev = document.createEvent("MouseEvents"), urlObject = window.URL || window.webkitURL || wi
路过君
2020/08/28
6.4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/14
4K0
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2018/01/18
6K0
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
其实网站就是一座连接用户和数据库的梁桥 数据库通过网站,将信息以不同的方式,展现给客户,客户通过网站,对数据库进行各种操作 下面,我们用一个例子,给大家展示下基本的增删改查操作 创建数据库 创建数据模型,并根据模型生成数据库 输入数据库信息,生成数据库 记得选择是 点击完成后,会生成sql语句,右键,执行 出现这条信息,说明执行成功,至此,数据库创建完成
骤雨重山
2022/01/17
5780
ASP.NET结合MVC+EF T4模板写后台管理系统框架(5)- 创建数据库
java操作redis: 将string、list、map、自定义的对象保存到redis中
import java.util.HashMap; import java.util.List; import java.util.Map; import redis.clients.jedis.Jedis; public class redis { public static void main(String[] args) { // 连接redis服务 Jedis jedis = new Jedis("127.0.0.1", 6379); // 密码验证-如果你没有设置redis
似水的流年
2019/12/06
1.1K0
将所有对象存到数据库中在Shop.m中
如果将字典或数组直接存储在数据库中,会将数组或字典转化成字符串,所以可以使用归档与反归档的方法将数据进行编码和解码成二进制数据进行存储,而在数据库中需要使用blob类型存储二进制数据。
hrscy
2018/08/30
1.4K0
数据库查询出的数据list 集合,转为json 的形式存到redis
数据库查询出的数据list 集合,转为json 的形式存到redis, 写一个接口,直接查询redis ,将数据返回;
一写代码就开心
2023/02/13
5960
将查询结果保存到excel中
<?php //****************连接数据库*************** $localhost=”localhost”; $root=”root”; // 用户 $databasen
苦咖啡
2018/05/07
1.7K0
ASP.NET MVC Section
本篇文章我们来讨论一下ASP.NET MVC框架中的Section。 Section主要用于将一部分代码插入到 Layout页面中的指定位置。通俗地说就是,我们先在 Layout页面中通过@RenderSection("Header")的方式挖一个坑,告诉下面的视图页面说,我这个地方有个坑,你们把你们各自相关的代码放进来吧。然后,使用该Layout的视图页面通过如下的方式将一坨坨的代码送到Layout的坑中。
全栈程序员站长
2022/09/15
7690
如何将Excel和xml文件数据保存到数据库
Inherits System.Windows.Forms.Form     Dim DS1 As New System.Data.DataSet     Dim DS2 As New System.Data.DataSet
Java架构师必看
2021/03/22
2.1K0
ServiceStack.Host.MVC vs ASP.NET MVC
ServiceStack.Host.MVC vs ASP.NET MVC解决方案解决方案子项ServiceStack.Host.MVC(3.9.71)ASP.NET MVC(3.0)路由 路由规则1.只能配置/home/{name}/{page}形式 2.不能对匹配区域({name})指定任何形式的通配符(正则,等等)1.可配置各种形式的规则,比如:home/{name}_{page} 2.可以对匹配区域({name})指定正则匹配路由匹配url->路由表->RequestDTO->根据request.me
KenTalk
2018/09/11
9170
JSONArray转换成List<T>
这个是针对mybatis中json对象映射成实体类的需求,mybatis通过(typeHandler = FastjsonTypeHandler.class)会把数据库类型是json的转换为List类型,但是本质上没有变。打印出来会是这样:
全栈程序员站长
2022/09/07
1K0
ASP.NET MVC升级到ASP.NET Core MVC踩坑小结
ASP.NET Core是微软新推出的支持跨平台、高性能、开源的开发框架,它的优势不必多说,因为已经说得太多了。当然,现在依然有着数量庞大的系统运行于.NET Framework上,由于有大量的Break Changes,很多项目项目团队也不敢贸然升级,其中的考量也不全部是技术原因,更多的可能还是业务推进因素。
AI.NET 极客圈
2020/05/18
2.4K0
ASP.NET MVC使用javascript
@if (IsSectionDefined(“SubMenu”)) { @RenderSection(“SubMenu”, required: false) }
全栈程序员站长
2022/09/15
8590
ASP.NET MVC Action Filters
在看这篇Fun with Http Headers in ASP.NET MVC Action Filters的时候,提到了 Roni Schuetz在codeplex上创建的一个项目ASP.NET MVC Action Filters。计划在5月10日推出第一个版本。 项目计划包含的Action Filter: Action filter for creating easy REST API with JSON and XML Action filter for logging scenarios
张善友
2018/01/22
8630
ASP.NET MVC HtmlHelper类
ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。 示例 诸如下述代码
李郑
2018/03/01
1.9K0
ASP.NET MVC HtmlHelper类

相似问题

将List<T>保存到XML文件

62

ASP.Net MVC 3 DataAnnotations验证List<T>

24

从List<T>保存到txt

71

ASP.NET MVC2 List<T>模型验证

11

ASP.NET MVC 3 List<T>到IEnumerable<SelectListItem>

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档