是否可以通过JDBC调用Oracle的包来创建表?
我正在把一个数据库创建过程从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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。