0

我是甲骨文的新手。更新我正在使用的表时

update my_table set column_name =concat(" ' ", column_name, "viewed by xxxx") 
where item_value=2. 

每当有人查看时,都会附加此值...现在我的问题是如何避免 varchar(2) 的最大大小并设置它是否仅比其大小小 50 个字符。我在 servlet 中使用它

我的要求是..如果某些用户查看 item_value 为 2,他的用户 ID 将通过连接 column_name 中 item_value=2 的现有值输入到 my_table 中,总之,我不想在更新时丢失字段中的早期数据和以避免达到 varchar2(900) 字段的最大大小。

如果该字段达到最大大小,则现有数据将被新数据覆盖,否则它将成为现有数据的连接。

4

2 回答 2

2

只需使用 SUBSTR:

update my_table set column_name
    = SUBSTR(' '' ' || column_name || 'viewed by xxxx')
            , 1, 900)
where item_value=2

PS concat 只能接受 2 个参数 - 我已将您的代码转换为使用更简单的 || 而是连接运算符。

Oracle 中的 PPS 字符串文字由'not分隔"

于 2013-08-23T02:16:56.120 回答
0

您应该创建一个存储过程,您将调用它来更新该字段。它将检查更新后的新大小,如果它太大,则执行您需要的任何操作(即添加到存档表,修剪现有数据等)。

于 2013-08-22T17:26:08.633 回答