小编JJ.*_*JJ.的帖子

如何确定PL/SQL语句中的行/值抛出错误?

(Oracle PL/SQL)

如果我有一个简单的SQL语句抛出错误,即:

DECLARE
    v_sql_errm varchar2(2048);
BEGIN
    UPDATE my_table SET my_column = do_something(my_column)
        WHERE my_column IS NOT NULL;
EXCEPTION
    when others then
        -- How can I obtain the row/value causing the error (unknown)?
        v_sql_errm := SQLERRM;
        insert into log_error (msg) values ('Error updating value (unknown): '||
             v_sql_errm);
END;
Run Code Online (Sandbox Code Playgroud)

在异常块中是否有任何方法来确定查询遇到错误的行/值?我希望能够记录它,以便我可以进入并修改/更正导致错误的特定数据值.

oracle error-handling plsql exception

7
推荐指数
1
解决办法
1万
查看次数

无法从存储过程(PL/SQL)中的dba_tab_cols中进行选择

我正在尝试从存储过程中的dba_tab_cols视图中进行SELECT.它不起作用,我不知道为什么.

如果我执行以下SQL作为查询:

SELECT t.data_type FROM dba_tab_cols t
WHERE 
    t.table_name = 'ACCOUNTTYPE' AND 
    t.column_name = 'ACCESSEDBY';
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,如果我将其复制到存储过程中,如下所示:

SELECT t.data_type INTO dataType FROM dba_tab_cols t
WHERE
    t.table_name = 'ACCOUNTTYPE' AND 
    t.column_name = 'ACCESSEDBY';
Run Code Online (Sandbox Code Playgroud)

我收到错误消息"PL/SQL:ORA-00942:表或视图不存在",编辑器在尝试编译时突出显示dba_tab_cols.在这两种情况下都使用相同的db用户.

dataType声明为:dataType varchar2(128);

PL/SQL(Oracle 9)

有人知道这个问题吗?

sql oracle stored-procedures oracle9i ora-00942

6
推荐指数
1
解决办法
5412
查看次数

wget:无法连接到https网站(TLS错误)

我试图wget通过Cygwin从https网站获取一些内容.不幸的是,当我尝试连接时,我收到以下错误:

#wget https://www.mysite.com/mycontent
Connecting to XXXXXXXX... connected.
GnuTLS: A TLS fatal alert has been received.
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)

证书是VeriSign Class 3,未过期.我一直在使用选项尝试--no-check-certificate,--secure-protocol=SSLv2,--secure-protocol=SSLv3,等它不工作,但给出了一个稍微不同的错误:

$ wget --secure-protocol=SSLv3 --no-check-certificate https://www.mysite.com/mycontent
Connecting to XXXXXX... connected.
GnuTLS: GnuTLS internal error.
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)

我还尝试在我的PC上从Internet Explorer导出DER证书,然后将该证书传递给wget,这也失败了:

$ wget --certificate-type=DER --certificate=mysite.cer https://www.mysite.com/mycontent
Connecting to XXXXX... connected.
GnuTLS: A TLS fatal alert has been received.
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?任何人都能指出我要做的工作方向吗?

抱歉,但出于雇主保密原因,我不得不编辑真实的服务器信息.

这是我的wget/cygwin配置信息:

$ wget --version
GNU …
Run Code Online (Sandbox Code Playgroud)

ssl https cygwin wget ssl-certificate

6
推荐指数
1
解决办法
3万
查看次数

使用simplexml_load_string获取xml属性

可能重复:
从SimpleXML访问@attribute

我正在使用一些第三方API,它通过以下形式通过xml返回错误:

<xml>
<status>0</status>
<error code="111">Error message text goes here.</error>
</xml>
Run Code Online (Sandbox Code Playgroud)

simplexml_load_string在PHP中使用我可以轻松获取状态0和错误消息文本,但我找不到code="111"从中检索值的方法<error code="111">.它似乎被SimpleXML放弃了.

<?php
    $bytesRead = file_get_contents('http://api.....');
    $xml = simplexml_load_string($bytesRead);

    echo '<pre>'; print_r($xml); echo '</pre>';
?>
Run Code Online (Sandbox Code Playgroud)

输出

SimpleXMLElement Object
(
    [status] => 0
    [error] => Error message text goes here.
)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?有没有办法获得这个值,或者有人建议另一种方法来获得这个?

php xml simplexml

3
推荐指数
1
解决办法
2万
查看次数

从子目录加载新站点作为索引

我想从子目录加载我的新网站,包括默认的index.html页面.

在我的public_html中,我有/ oldsite /和/ newsite/folders ...

然后..当我访问http://www.mysite.com/ ..我希望它从http://www.mysite.com/newsite/加载所有内容而不重定向.如果可能,我想用.htaccess mod_rewrite来做..

任何人都可以帮我解决这个问题.这该怎么做?

.htaccess mod-rewrite

2
推荐指数
1
解决办法
2935
查看次数

在一维数组中搜索

我已经设法在数组中搜索,但是我如何显示数组中搜索的值的位置以获取下面的代码?

import javax.swing.*;
import java.util.Arrays;

public class Listahan {

    public static void main(String[] args){
        int list1[] = {1,3,2,5,7,8,5,6,9,4};
        int list2[] = {2,1,4,3,2,1,4,2,0,2};
        int list3[] = new int[10];
        int a;

        System.out.print("List1: ");
        for(a=0; a<10; a++){
            System.out.print(list1[a]+" ");
        }
        System.out.print("\nList2: ");
        for(a=0; a<10; a++){
            System.out.print(list2[a]+" ");
        }
        System.out.print("\nList3: ");
        for(a=0; a<10; a++){
            list3[a]=list1[a]+list2[a];
            System.out.print(list3[a]+" ");
        }

        int searchValue = Integer.parseInt(JOptionPane.showInputDialog("Input a value to search in List3: "));
        int Result = Arrays.binarySearch(list3,searchValue);

        if(Result!=-3){
            System.out.println("\n\nThe value "+searchValue+" is in List3!");
            System.out.println("There are "+Result+" of …
Run Code Online (Sandbox Code Playgroud)

java arrays

0
推荐指数
1
解决办法
1556
查看次数