【问题标题】:Unable to DROP Index (Sybase) on a table from Java Code无法从 Java 代码对表删除索引 (Sybase)
【发布时间】:2023-04-08 19:01:01
【问题描述】:

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

当我使用 JDBC 使用 Callable Statement 执行 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);
    }

【问题讨论】:

    标签: java exception indexing sybase


    【解决方案1】:

    这是对 SP 的一个简单更改:

    对于每个索引,我们使用了一个 IF 条件 -

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多