有没有办法在进行游标提取时判断哪条记录导致错误?例如,假设我有一个包含一列(varchar2)的表,"value",其中包含以下值:
1,2,3,4,g,5,6
我做以下事情:
DECLARE
answer number;
CURSOR c1 IS
SELECT to_number(value) FROM table;
BEGIN
OPEN c1;
LOOP
FETCH c1 INTO answer;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(answer);
END LOOP;
CLOSE c1;
EXCEPTION WHEN invalid_number THEN
dbms_output.put_line('an invalid number exception was encountered');
END;
Run Code Online (Sandbox Code Playgroud)
在遇到'g'之前,它会没有问题吗?这是我正在尝试调试的真正问题的一个简单示例.在实际示例中,它输出异常消息,而不是其他任何内容.这是否意味着它是第一个导致问题的记录,或者它不能以这种方式工作?
我创建了一个光标来选择实际数据,然后循环输出原始值和转换为数字后的值.该应用程序偶尔会抛出无效的数字错误.下面是我的测试(不包括select语句)代码和输出.
LOOP
FETCH myCursor into v_answer;
EXIT WHEN myCursor%notfound;
DBMS_OUTPUT.PUT_LINE('Raw answer: ' || v_answer );
v_instr := INSTR(v_answer, '.',1 , 2) ;
v_number := TO_NUMBER(REPLACE(TRANSLATE (CASE v_instr
WHEN 0 THEN UPPER(v_answer)
ELSE 0
END,'ABCDEFGHIJKLMNOPQURSTWVXYZ+<>:',' '), ' ',''));
DBMS_output.put_line('As number: ' || v_number);
Run Code Online (Sandbox Code Playgroud)
这是输出:
Raw answer: 4
As number: 4
Raw answer: 3
As number: 3
Raw answer: 1.00
As number: 1
Raw answer: <3
Run Code Online (Sandbox Code Playgroud)
我收到:
PL/SQL:数字或值错误:字符到数字转换错误
......当Raw回答为"<3"时.
请注意,应用程序使用的实际代码如下所示:
AND TO_NUMBER(REPLACE(TRANSLATE ( decode( INSTR(hra_ans.answer_text, '.',1 , 2), 0 , UPPER(hra_ans.answer_text) , …Run Code Online (Sandbox Code Playgroud) 我正在努力改进C++(我知道一点).我正在研究字符数组.我找到了一个练习,其目标是反转一个字符数组(在我从一个整数转换后).我收到以下错误(使用VS2005):
运行时检查失败#2 - 变量'revBuffer'周围的堆栈已损坏.
当我单步执行代码时,我会注意到以下内容:
revBuffer = 0x0012fe40"100899ÌÌ","998001"
相关代码如下.
char buffer[5];
char revBuffer[5];
int i;
int j=5;
long number = 998001;
itoa(number, buffer, 10);
for(i=0; i<strlen(buffer);i++)
{
revBuffer[j] = buffer[i];
j--;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.TIA!
我开始玩MVC了.我做了NerdDinner演练,现在我正在创建一个显示Northwinds数据库中产品的简单项目.我有一个详细信息视图,一个创建视图和一个编辑视图.我想出了如何显示布尔属性"Discontinued"的复选框,但我希望在详细信息视图上禁用该控件(因为编辑视图用于编辑).这就是我所拥有的:
<div class="display-label">Discontinued: <%: Html.CheckBoxFor(Function(model) model.Discontinued)%></div>
Run Code Online (Sandbox Code Playgroud)
我不确定如何进入或设置复选框的启用属性.(我想我可以用javascript来做,但我认为有更好的方法).谢谢您的帮助.
我对Oracle很新,不过很新 - 但我正在学习.我有一个编译没有错误的包.当我打开身体(使用TOAD)时,我可以看到一个程序,但同样的程序没有出现在规范中.什么会导致这个?
提前致谢.
我有一个要求,要求自定义验证器.用户希望验证字段旁边有一个红色星号.星号应始终显示 - 表示该字段是必需的(取决于选中/取消选中的复选框).验证摘要中显示的错误消息相当长.我使用了星号的标签,因为控件位于.ascx用户控件中,该控件在多个页面上使用,有时星号应显示,有时则不应显示.因为我不希望错误消息显示在字段旁边而我不想要两个星号,所以我尝试不设置自定义验证器的Text属性.但是,这会导致错误消息显示文本显示的位置.我也尝试通过代码将text属性设置为String.Empty,但也没有用.我在SO,Google或MSDN上找不到任何内容.
我想出的唯一解决方案是将text属性设置为星号,并将forecolor设置为白色,从而有效地使其不可见.
如果没有这种解决方法,有没有办法完成我想做的事情?
提前致谢!
我正在制作一个网站,该网站的表单需要对外部付款提供商进行POST。但是,我需要检查组件的代码以检查用户是否首先经过身份验证。如果没有,我需要通过我的webapi来更新值。收到响应后,我可以继续对外部URL进行POST。我的代码如下所示:
onSubmit(form: any): void {
//for anonymous orders, we need to store the email before we send the form
if(this.loggedIn){
form.submit();
}
else{
this.cartService.updateUserEmail(this.cart.id, this.email)
.subscribe(() => form.submit())
}
}
Run Code Online (Sandbox Code Playgroud)
如果this.loggedIn为true,则POST可以正常工作。仅当我需要调用cartService时,form.submit才起作用。有时,控制台显示错误,“对象不包含方法commit()”,有时,控制台中什么也没得到...。
这是开幕表格标记:
<form #cartForm="ngForm" (ngSubmit)="onSubmit(cartForm)" method="post" [action]="cart.paymentUrl" >
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
编辑 这是我的提交按钮的标记,根据要求:
<button type="submit">CHECKOUT</button>
Run Code Online (Sandbox Code Playgroud) 抱歉这个糟糕的问题标题.有没有办法在一行上执行此操作:
Button button = (Button)Gridview.Cells[0].FindControl("controlname");
button.Enabled = (some boolean);
Run Code Online (Sandbox Code Playgroud)
例如,vb中的directcast将允许:
DirectCast(Gridview.Cells(0).FindControl("controlname"), Button).Enabled = (some boolean value)
Run Code Online (Sandbox Code Playgroud)
还是需要两行?
谢谢!