1. <tfoot id='vSH81'></tfoot>
        <bdo id='vSH81'></bdo><ul id='vSH81'></ul>

      <legend id='vSH81'><style id='vSH81'><dir id='vSH81'><q id='vSH81'></q></dir></style></legend>
      <i id='vSH81'><tr id='vSH81'><dt id='vSH81'><q id='vSH81'><span id='vSH81'><b id='vSH81'><form id='vSH81'><ins id='vSH81'></ins><ul id='vSH81'></ul><sub id='vSH81'></sub></form><legend id='vSH81'></legend><bdo id='vSH81'><pre id='vSH81'><center id='vSH81'></center></pre></bdo></b><th id='vSH81'></th></span></q></dt></tr></i><div id='vSH81'><tfoot id='vSH81'></tfoot><dl id='vSH81'><fieldset id='vSH81'></fieldset></dl></div>

      <small id='vSH81'></small><noframes id='vSH81'>

        我怎样才能传递一个“数组"?我的存储过程的

        时间:2023-08-19

          <tfoot id='HPRQg'></tfoot>
          <i id='HPRQg'><tr id='HPRQg'><dt id='HPRQg'><q id='HPRQg'><span id='HPRQg'><b id='HPRQg'><form id='HPRQg'><ins id='HPRQg'></ins><ul id='HPRQg'></ul><sub id='HPRQg'></sub></form><legend id='HPRQg'></legend><bdo id='HPRQg'><pre id='HPRQg'><center id='HPRQg'></center></pre></bdo></b><th id='HPRQg'></th></span></q></dt></tr></i><div id='HPRQg'><tfoot id='HPRQg'></tfoot><dl id='HPRQg'><fieldset id='HPRQg'></fieldset></dl></div>

          <small id='HPRQg'></small><noframes id='HPRQg'>

            <bdo id='HPRQg'></bdo><ul id='HPRQg'></ul>
              <legend id='HPRQg'><style id='HPRQg'><dir id='HPRQg'><q id='HPRQg'></q></dir></style></legend>

                    <tbody id='HPRQg'></tbody>
                  本文介绍了我怎样才能传递一个“数组"?我的存储过程的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我希望能够将值的数组"传递给我的存储过程,而不是连续调用添加值"过程.

                  I want to be able to pass an "array" of values to my stored procedure, instead of calling "Add value" procedure serially.

                  有人可以建议一种方法吗?我在这里遗漏了什么吗?

                  Can anyone suggest a way to do it? am I missing something here?

                  我将使用 PostgreSQL/MySQL,我还没有决定.

                  I will be using PostgreSQL / MySQL, I haven't decided yet.

                  推荐答案

                  正如 Chris 所指出的,在 PostgreSQL 中这没问题 - 任何基本类型(如 int、text)都有自己的数组子类型,您还可以创建自定义类型,包括复合的.例如:

                  As Chris pointed, in PostgreSQL it's no problem - any base type (like int, text) has it's own array subtype, and you can also create custom types including composite ones. For example:

                  CREATE TYPE test as (
                      n int4,
                      m int4
                  );
                  

                  现在您可以轻松创建测试数组:

                  Now you can easily create array of test:

                  select ARRAY[
                      row(1,2)::test,
                      row(3,4)::test,
                      row(5,6)::test
                  ];
                  

                  您可以编写一个函数,将数组中的每一项乘以 n*m,并返回乘积之和:

                  You can write a function that will multiply n*m for each item in array, and return sum of products:

                  CREATE OR REPLACE FUNCTION test_test(IN work_array test[]) RETURNS INT4 as $$
                  DECLARE
                      i      INT4;
                      result INT4 := 0;
                  BEGIN
                      FOR i IN SELECT generate_subscripts( work_array, 1 ) LOOP
                          result := result + work_array[i].n * work_array[i].m;
                      END LOOP;
                      RETURN result;
                  END;
                  $$ language plpgsql;
                  

                  并运行它:

                  # SELECT test_test(
                      ARRAY[
                          row(1, 2)::test,
                          row(3,4)::test,
                          row(5,6)::test
                      ]
                  );
                   test_test
                  -----------
                          44
                  (1 row)
                  

                  这篇关于我怎样才能传递一个“数组"?我的存储过程的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在mysql中存储numpy数组 下一篇:如何在oracle中创建一个接受参数数组的存储过程

                  相关文章

                  最新文章

                  <tfoot id='ufoDO'></tfoot>

                    <small id='ufoDO'></small><noframes id='ufoDO'>

                    1. <i id='ufoDO'><tr id='ufoDO'><dt id='ufoDO'><q id='ufoDO'><span id='ufoDO'><b id='ufoDO'><form id='ufoDO'><ins id='ufoDO'></ins><ul id='ufoDO'></ul><sub id='ufoDO'></sub></form><legend id='ufoDO'></legend><bdo id='ufoDO'><pre id='ufoDO'><center id='ufoDO'></center></pre></bdo></b><th id='ufoDO'></th></span></q></dt></tr></i><div id='ufoDO'><tfoot id='ufoDO'></tfoot><dl id='ufoDO'><fieldset id='ufoDO'></fieldset></dl></div>
                      • <bdo id='ufoDO'></bdo><ul id='ufoDO'></ul>
                      <legend id='ufoDO'><style id='ufoDO'><dir id='ufoDO'><q id='ufoDO'></q></dir></style></legend>