Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在另一个表中插入select查询的结果';s柱_C#_Sql_Oracle - Fatal编程技术网

C# 如何在另一个表中插入select查询的结果';s柱

C# 如何在另一个表中插入select查询的结果';s柱,c#,sql,oracle,C#,Sql,Oracle,我想将查询输出(两列)存储在R\u LOG表的DETAILTEXT列(单列)中 SELECT segment_name TABLE_NAME, SUM(bytes) table_size FROM USER_SEGMENTS WHERE SEGMENT_TYPE = 'TABLE' GROUP BY segment_name ORDER BY segment_name ASC; INSERT INTO R_LOG (DOMAINID, SOURCENAME, TERMINALID,u

我想将查询输出(两列)存储在
R\u LOG
表的
DETAILTEXT
列(单列)中

SELECT segment_name TABLE_NAME, SUM(bytes) table_size
  FROM USER_SEGMENTS
 WHERE SEGMENT_TYPE = 'TABLE'
 GROUP BY segment_name
 ORDER BY segment_name ASC;

INSERT INTO R_LOG (DOMAINID, SOURCENAME, TERMINALID,userid, DETAILTEXT)
VALUES (1, 'tables_job', 'TEST', 'GUEST',?????);
我的代码的这一部分工作得很好,但是我无法插入值


如果您需要
listag()
函数以及
INSERT
语句,我们将不胜感激

SELECT segment_name TABLE_NAME, SUM(bytes) table_size
  FROM USER_SEGMENTS
 WHERE SEGMENT_TYPE = 'TABLE'
 GROUP BY segment_name
 ORDER BY segment_name ASC;
如果您得到ORA-01489:字符串连接的结果太长,则将包含
listag()
函数的最后一列替换为

INSERT INTO R_LOG
SELECT 1, 'tables_job', 'TEST', 'GUEST', 
       LISTAGG('Table : '||segment_name||'- size: '|| SUM(bytes),', ') 
        WITHIN GROUP (ORDER BY segment_name)
  FROM USER_SEGMENTS
 WHERE SEGMENT_TYPE = 'TABLE'
 GROUP BY segment_name

我猜您希望将目标列中的列
段\名称
总和(字节)
连接起来。
使用
选择
而不是

RTRIM(XMLAGG(XMLELEMENT(e, 'Table : '||segment_name||'- size: '|| SUM(bytes), ',')
      .EXTRACT('//text()') ORDER BY segment_name)
      .GetClobVal(),
      ',')

您可以直接使用
插入[(列)]选择..
如下:

INSERT INTO R_LOG (DOMAINID, SOURCENAME, TERMINALID,userid, DETAILTEXT) 
SELECT 1, 'tables_job', 'TEST', 'GUEST', segment_name || ' ' || SUM(bytes) 
FROM USER_SEGMENTS
WHERE SEGMENT_TYPE='TABLE'
GROUP BY segment_name
ORDER BY segment_name ASC;
@请看一下,有什么问题吗。。?顺便说一句,
DETAILTEXT
是CLOB类型,如果类型是VARCHAR2,那么它的长度是多少。。?
INSERT INTO R_LOG (
    DOMAINID,
    SOURCENAME,
    TERMINALID,
    USERID,
    DETAILTEXT
)
    SELECT 1, -- need to use some sequence here
           'tables_job',
           'TEST',
           'GUEST',
           SEGMENT_NAME || ' ' || SUM(BYTES)
      FROM USER_SEGMENTS
     WHERE SEGMENT_TYPE = 'TABLE'
     GROUP BY SEGMENT_NAME; 
     -- Order by is not needed