BTEQ相关问题-我正在通过BTEQ编制一个SP列表,如下所示
.compile file=sp1 ;
.IF ERRORCODE <> 0 THEN .GOTO SQLERROR;
compile file=sp2 ;
.IF ERRORCODE <> 0 THEN .GOTO SQLERROR;
.logoff
.quit
.LABEL SQLERROR
.logoff ;
.quit ;
关于这些,我有以下几个问题
>
如果SP编译失败,则以下.if
条件应捕获该条件,并且文件的其余部分应根据.label
、SQLERROR
的说明被忽略
但这不会发生
null
.compile file=sp1 ; One Error/Warning. Warning: 5526 Stored Procedure is not created/replaced due to error(s). Total elapsed time was 1 second. Errors reported during compilation `--------------------------------------------------------------------------- SPL1076:E(L3), The right parenthesis in parameter declaration is missing.+------+-----+----+-----+-----+-----+------+------+-----------------------------------------------------------------------------------
.如果ERRORCODE<>0,则.Goto SqlError; +------+-----+----+-----+-----+-----+------+------+----------------------------------------------------------------------------------- .compile file=sp2;
程序已被替换。 总运行时间为%1秒。
null
为什么
if
不起作用?>
存储过程替换视图。整个replace stored proc
语句是通过导出的show
生成的。我以后再谈那个问题。SP内部的代码如下所示
REPLACE PROCEDURE "DB"."TB" (IN L_N2 VARCHAR(500), IN L_N1 VARCHAR(500) ) BEGIN声明returncode整数默认值为0; 宣布mystat VARCHAR(60000);
声明SQLEXCEPTION的退出处理程序 开始 设置ReturnCode=1/0; 结束 SET MYSTAT='替换视图'L_N2'.TBNAME(VCol1,Vcol2) 如出售col1、col2 从'L_N1'.TBName'; 调用dbc.sysexecsql(mystat);
结束
在这里,即使Col1、Col2有问题,例如,将Col1放入Col1,而不是Col1,则SP将编译。可以理解,存储过程调用的运行时结果在编译时不会被计算。这样就会出现无法检测生成的替换视图
DDL中任何类型的错误的情况。有什么方法可以让替换视图
在SP编译时进行验证吗?
db.tb
之间有一个额外的空格,如“db”。“tb”
现在,当我在SQL助手中执行相同的显示时--一切正常--没有空间。我必须写另一个sed来删除多余的空间。sel foo_ bar, foobar,Col. tb from db.tb foo_bar is split across multiple lines . # std BTEQ options are used. The \n is because I am echoing all this to file .SET ECHOREQ OFF \n .set width 500 .set titledashes off \n .set format off \n .set rtitle '' \n .export report file="$ph" \n show procedure $db.$tb ; \n .export reset ; \n
Q1:BTEQ只是忽略DBMS返回的任何错误/警告(不知道为什么)。如果要在出现任何错误/警告后停止,则只需使用activitycount
而不是errorcode
:
.compile file=sp1 ;
.IF ACTIVITYCOUNT > 0 THEN .GOTO SQLERROR;
如果你想忽略警告,我不知道不先丢弃SP的可靠方法:
DROP PROCEDURE whatever;
.compile file=sp1 ; -- creates SP whatever
HELP PROCEDURE whatever ATTR;
.IF ERRORCODE = 5495 THEN .GOTO SQLERROR; -- 5495 = SP doesn't exist
Q2:没有办法验证动态SQL,顾名思义,它是动态的,在实际提交之前DBMS不知道。
Q3:限定名中句点周围的空格不会导致错误,db。解析器乐于接受TD
。
foo_bar
不应跨行拆分,除非行太宽,只需使用增加最大长度。设置宽度30000;
问题内容: 来自C语言的Go语言最值得注意的方面之一是,如果在其中声明了一个未使用的变量,编译器将不会编译您的程序。那么,如果在函数中声明了一个未使用的参数,那么为什么要构建此程序呢? 问题答案: 没有正式的原因,但是在golang-nuts上给出的原因是: 未使用的变量始终是编程错误,而编写不使用其所有参数的函数是很常见的。 可以将这些参数保留为未命名(使用_),但这可能会与诸如 func fo
问题内容: 真正的Java泛型专家有点困惑…;) 假设我有以下两个接口: 例如,以下两个实现类: 有什么方法可以使这两个接口通用,以至于我不需要在函数中进行标记检查,而在我的代码的其他地方仍可以进行以下构造工作? (当然,我不知道我在处理哪个Foo子类) 换句话说:我正在寻找一种在对象中定义函数的方法,使其只能返回另一个对象,该对象处理包含该函数的对象的类型。注意:我不仅在谈论处理包含该函数的对象
问题内容: 我目前正在将非常大的类路径传递给javac来编译Java项目。 我知道不需要这些jar文件。 有没有一种简单的方法可以找出不需要的文件? 问题答案: 您需要类依赖分析器工具。引用引言: 该工具的目的是分析Java™类文件,以便更多地了解这些类之间的依赖关系。 没错,它不会捕获运行时依赖关系-但是如果没有运行详尽的100%覆盖率测试套件,您将永远无法确定自己已捕获所有运行时依赖关系。 如
我有一个功能正常的Rails 3应用程序,它使用has_many:通过关联,而不是,因为我将其重制为Rails 4应用程序,让我从Rails 4版本中的关联模型中保存id。 这两个版本的三个相关模型是相同的。 分类.rb Question.rb 类别.rb 在这两个应用程序中,类别id都像这样传递到创建操作中 在Rails 3应用程序中,当我创建一个新问题时,它会插入问题表,然后插入分类表 在ra
问题内容: 我最近意识到我不完全了解Java的字符串编码过程。 考虑以下代码: 由于Windows-1252和ISO-8859-1之间的控制字符解释不同,因此我选择了char作为测试对象。 现在,我使用不同的文件编码,UTF-8,windows-1252和ISO-8859-1对其进行编译。两者都编译为完全相同的东西,由验证。 然后,我运行程序: 无论使用哪种编码,它都能正确输出。 好的,它仍然输出
我对Firebase实时数据库规则有意见。我向。在中,我想在实时数据库中添加我自己的用户对象。我这样做是因为每个用户都有额外的电子邮件/密码信息。 我检查完之后 方法 它叫。但出于某种原因,会抛出此数据库错误: 根据我的理解,如果Firebase用户不是null,那么他已经登录,因此我的规则在Firebase中声明 将允许用户写入数据库。但是,当我将规则更改为和。 所以我的问题是:我做错了什么?我