如果休眠映射文件中没有定义长度属性怎么办,那么列的默认值是啥? [关闭]
Posted
技术标签:
【中文标题】如果休眠映射文件中没有定义长度属性怎么办,那么列的默认值是啥? [关闭]【英文标题】:what if length attribute is not defined in hibernate mapping file, what will be the default value for a column then? [closed]如果休眠映射文件中没有定义长度属性怎么办,那么列的默认值是什么? [关闭] 【发布时间】:2018-08-28 13:03:35 【问题描述】:如果我没有在我的休眠映射 hbm.xml 文件中定义长度属性会发生什么?
该列的默认长度值是多少?
谢谢
【问题讨论】:
“一次拍摄”是什么意思?一条 SQL 语句?单个 PL/SQL 块?单笔交易? 是的,你所有的问题 Oracle不支持事务性DDL,所以这部分是不可能的。 所以我必须运行 alter command 100 次? 是的,可以在 SQL 中手动,也可以在 PL/SQL 中使用循环 【参考方案1】:既然您标记了 SQL Developer...
You can grab this XML extension from our GitHub repo。特别是“MultiSelectObjectExample”
添加后,您可以在连接树中多选大量表,右键单击,然后生成要运行的代码。
假设您想在一堆表中添加一个名为 *** 的列,即 VARCHAR2(4000)。
选择表格,单击鼠标右键。
然后在弹出的对话框中:
将该文本块复制到 SQL 工作表。
运行它。
看到我在红框中的按钮了吗?如果你点击它,它会将输出复制到一个新的 sql 工作表中,以便你运行它。
这是很多步骤,但是如果您需要 GUI 帮助来动态地对很多对象执行某些操作,它可能非常有用。
您当然可以更改代码以将该文本添加到局部变量并使用 EXECUTE IMMEDIATE,但是这样一来就很容易弄乱 100 个表。我喜欢 DBMS_OUTPUT 方式,因为它迫使我在执行代码之前查看代码。
【讨论】:
【参考方案2】:循环遍历表列表并使用 execute immediate 执行您需要的更改脚本
在这个例子中,我重命名了在我的用户下创建的所有表
begin
for rec in (select * from user_tables)
execute immediate 'ALTER TABLE '|| rec.table_name|| ' RENAME TO DUP_'|| rec.table_name;
end Loop;
end;
/
然后您可以从数据字典中动态生成您需要的 alter 命令
【讨论】:
以上是关于如果休眠映射文件中没有定义长度属性怎么办,那么列的默认值是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章