是否可以通过JDBC调用Oracle的包来创建表?

编程语言 2026-07-11

我正在把一个数据库创建过程从SQL*Plus迁移到JDBC。我需要运行一批与Oracle包相关联的进程。

BEGIN
ddl.column('table_name', 'column_name', 'type')
END

我也尝试了使用以下方式运行:

String sql = "{}";
CallableStatement statement = connection.prepareCall(sql);
statement.executeUpdate();
statement.close();

我还尝试将语句改写为以下格式:

{ call ddl.column('table_name', 'column_name', 'type') }

要么会收到“表或视图不存在”的错误,要么命令显示为正常执行,但对数据库实际上并未做出任何修改。

所有的SQL语句都可以在SQL Developer或 SQL*Plus中正常执行。

有人知道我应该改哪些地方,才能让这些变更持续生效吗?

解决方案

如果你得到“表或视图不存在”的错误,很可能是某个DDL命令缺少权限。你是在与SQL*Plus相同的用户下运行吗?应该在DDL存储过程中增加更完善的错误处理和跟踪。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章