当前位置: 首页 > 知识库问答 >
问题:

我可以在一个集合中更新所有列吗

郗学
2023-03-14

我只是问是否有一个替代的方式为下面的更新。

更新test_table集
col 1=trim(col1),
col 2=trim(col2),
col 3=trim(col3),
col 4=trim(col4),
col 5=trim(col5),

在我的真实表中,大约有20列,也许更多。有没有一个快速的方法,我可以修剪所有的柱子在一个镜头?
查找类似查询(如果存在):

update test_table set all columns=trim(列)

编辑:
我可以这样做:

还有别的办法吗?

共有1个答案

牛智志
2023-03-14

据我所知,没有SQL语法可以为您提供一种快速、简便的方法来完成此操作。

一种方法是编写一个PL/SQL块,从系统视图(例如user_tab_cols)中选择给定表的列名,并将它们写入一个变量,以构建动态运行的SQL代码。老实说,除非有多个表要执行此操作,或者有多个列要加载,否则手动编写查询可能会更容易。

编辑-这里是您想要的代码

declare
   v_table varchar2(50) := 'test_table';
   v_sql varchar2(2000) := null;

   cursor c_cols(p_table varchar2) is
      select c.column_name as col
        from user_tab_cols c
       where c.table_name = upper(p_table)
       order by c.column_id;

begin
   -- write first line of sql...
   v_sql := 'update ' || v_table || ' set' || chr(10);

   -- loop through col names to add each col into update statement...
   for l_c_cols in c_cols(v_table) loop
       v_sql := v_sql || l_c_cols.col || ' = trim(' || l_c_cols.col || '),' || chr(10);
   end loop;

   -- remove last comma...
   v_sql := substr(v_sql,1,length(v_sql)-2);

   -- run dynamic sql...
   dbms_output.put_line(v_sql);
   begin
      execute immediate v_sql;
      commit;
   end;

end;
 类似资料:
  • 我需要向3个服务发送消息,并在最后聚合结果 这很容易通过发布订阅频道实现- 当其中一个服务实际上是对其他服务的2次调用时,就会出现问题。现在我想介绍另外的和聚合器。 例如。 因此不会对消息进行分组(逐个发送)。 聚合器1从聚合器2获取结果并发送消息,无需等待service activator组1的消息。 有什么建议吗?

  • 我有亲戚 并想在PostgreSQL中加入它 所以我得到了所有可能的替换组合(即替换或多或少的笛卡尔积)。所以组1没有更新,组2只有B2,组3只有D2,组4都有B2和D2。 结尾应该是这样的,但应该对更多人开放(就像D1的额外D3) 编辑: 另一个可能的替换表可以是 可能会导致6组(我希望我没有忘记一个案例) 如果你有三个替代品,比如 这将导致8组。到目前为止,我所尝试的并没有真正的帮助: 我很高

  • 问题内容: 我有许多排序后的集合用作系统上的二级索引,用户查询可能会碰到其中的一些。 要使用这些索引来使所有30岁以下且得分> 2的用户 但这意味着我已将所有数据从redis复制到我的应用服务器以执行交叉,是否有更有效的方法来执行此操作,而不是通过网络传输所有匹配范围,而是在Rediss中进行交叉? 我想要的是 ZRANGEBYSCORESTORE在其中执行ZRANGEBYSCORE操作并将结果存

  • 我正在使用Firebase Firestore作为BaaS构建一个应用程序。 但当我尝试在我的应用程序上创建提要/实现全文搜索时,我面临一个问题。 我希望能够搜索所有用户的帖子,问题是,用户帖子在Firestore数据库中的结构如下: 帖子(收藏)- 我想遍历每个用户的用户帖子子集合并获取提要的所有数据,并使用Algolia或ES等全文搜索应用程序来实现它。 > 我可以遍历特定的用户ID(代码如下

  • 问题内容: 这里有点“简单”的问题,但是 使用Eclipse进行此类操作似乎很复杂。 我有一个“ utils”项目,在其中开发了“通用”代码,例如xml解析器,记录器,数学计算,调试实用程序等。 该库基于其他几个外部库(commons-lang-3.1,colt-1.2.0,jdom-2.0.4)工作,并且它是不可运行的JAR文件(即, 没有main(),包含在其他项目中的实用程序代码)。 我想做

  • 我所处的情况是,当用户付款时,存储在Firestore集合(CartProducts)中的购物车产品应移动到名为SuccessFullOrders的新集合。 因此,我的基本问题是如何在Flutter中将所有文档从一个集合移动到Firestore的另一个集合 我不知道如何在flutter中编写代码。谢谢你的回答 这是我的代码