无法在Java代码的表上进行DROP索引(Sybase)

时间:2014-08-08 06:02:32

标签: java exception indexing sybase

我有一个存储过程,它会删除数据库中特定表的索引。从数据库控制台执行时,此SP可正常运行而无错误。

当我使用JDBC使用Callable语句执行SP时,它会给出一个SQL异常,并说索引不能被删除。

在数据库上检查时,索引也会被删除。

    CREATE PROCEDURE sp_drop_idx as
    BEGIN

    DROP INDEX sp_close_1.XPKusr1
    DROP INDEX sp_close_1.ilxuser22
    DROP INDEX sp_close_1.indx_billid1
    DROP INDEX sp_close_1.cycle_ind
    END 
    GO

在另一个SP中调用此SP,让我们使用普通的JDBC调用从java代码中调用 outerSP

    cb = conn.prepareCall("{call outerSP}");
    s = cb.executeQuery();
    while(rs.next()){
        num = (Integer)rs.getInt(1);
    }

1 个答案:

答案 0 :(得分:0)

这是SP中的一个简单改变:

对于我们使用IF条件的每个索引 -

IF EXISTS(select * from sysindexes where id = object_id('sp_close_1') and name ='XPKusr1')
        DROP INDEX sp_close_1.XPKusr1