小编diz*_*iaq的帖子

如何获取每个ID的正数和负数?

我想计算每个 id 的负值和正值。

样品小提琴

ID=1 has 2 positive and 0 negative transactions. etc.

 with trans_detail as 
 (
 select 1 as trans_id, 100 as trans_amount  from dual union all
 select 1 as trans_id, 200 as trans_amount  from dual union all
 select 2 as trans_id, -100 as trans_amount  from dual union all
 select 2 as trans_id, -300 as trans_amount  from dual union all
 select 3 as trans_id, 400 as trans_amount   from dual union all
 select 3 as trans_id, -500 as trans_amount  from …
Run Code Online (Sandbox Code Playgroud)

sql oracle count window-functions

4
推荐指数
1
解决办法
4707
查看次数

Oracle中创建包含部分主键的物化视图时无法设置ON COMMIT刷新属性

我需要将作为主键一部分的列的唯一值从表中提取到物化视图中。如果使用“刷新完成”,我可以创建物化视图,但在尝试使用“提交时快速刷新”时却没有运气。谁能指出我是否错过了什么或者Oracle不支持这样的操作。

下面列出了示例输出。谢谢。

SQL> create table TEST( col1 number, col2 number, col3 varchar(32), CONSTRAINT test_pk Primary Key (col1, col2));

Table created.

SQL> create materialized view test_mv build immediate refresh fast on commit as select distinct col2 from test;
create materialized view test_mv build immediate refresh fast on commit as select distinct col2 from test
                                                                                                     *
ERROR at line 1:
ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view


SQL> create materialized view test_mv build immediate refresh complete as …
Run Code Online (Sandbox Code Playgroud)

oracle materialized-views primary-key

3
推荐指数
1
解决办法
9740
查看次数

Alfresco db内容大小和contentstore大小:如何匹配?

我有一个SQL查询来从内容URL获取内容大小,但是当我执行SQL并将结果与​​contentstore的目录大小进行比较时,它不匹配.例如,首先我从数据库(PostgreSQL)获取内容大小:

SELECT count(*),
       SUM(round(u.content_size/1024/1024,2)) AS "Size (MB)",
       to_char(n.audit_created:: date,'yyyy') AS yyyy_
  FROM alf_node            AS n,
       alf_node_properties AS p,
       alf_node_properties AS p1,
       alf_namespace       AS ns,
       alf_qname           AS q,
       alf_content_data    AS d,
       alf_content_url     AS u
WHERE n.id=p.node_id
  AND ns.id=q.ns_id
  AND p.qname_id=q.id
  AND p.long_value=d.id
  AND d.content_url_id=u.id
  AND p1.node_id=n.id
  AND p1.qname_id IN (SELECT id FROM alf_qname WHERE local_name='name')
GROUP BY yyyy_
ORDER BY yyyy_ DESC;
Run Code Online (Sandbox Code Playgroud)

它给我的总大小为600 GB.但是当我看到文件夹内容存储的大小属性alf_data显示为2.4 TB时.怎么可能?

sql postgresql alfresco

3
推荐指数
2
解决办法
1084
查看次数

从不可变映射和附加键值创建新映射的 Kotlin 标准方法

Kotlin 中是否有标准方法将新的键值对与不可变映射关联起来?

associate(mapOf("A" to 1, "B" to 2), "C", 3); // => {A=1, B=2, C=3}
Run Code Online (Sandbox Code Playgroud)

考虑类似于Clojure 中的accos函数的东西。

(assoc {:key1 "value1" :key2 "value2"} :key3 "value3")   
                                    ;;=> { :key1 "value1", :key2 "value2", :key3 "value3"}
Run Code Online (Sandbox Code Playgroud)

如何使其直接将条目复制到新映射中是显而易见的,但我相信 Kotlin 标准库中实现了更优化的方法。你能举一个惯用的例子吗?

dictionary immutability data-structures kotlin

3
推荐指数
1
解决办法
2994
查看次数

如何在 Kotlin 中表达数组注释参数?

当注释具有基本类型(如 String 或 Int)的数组参数时,如何使用它很简单:

public @interface MyAnnotation{
  String[] props();
}

@MyAnnotation(props = ["A", "B", "C"])
class Foo {}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不适用于注释本身的值。

一个例子是org.springframework.context.annotation.PropertySources

public @interface PropertySources {
  PropertySource[] value();
}

public @interface PropertySource { 
  String[] value();
}
Run Code Online (Sandbox Code Playgroud)

在Java中语法用法是

@PropertySources({
    @PropertySource({"A", "B", "C"}),
    @PropertySource({"D", "E", "F"}),
})
class Foo{}
Run Code Online (Sandbox Code Playgroud)

但在 Kotlin 中,具有类似方法的代码无法编译

@PropertySources([
    @PropertySource(["A", "B", "C"]),
    @PropertySource(["D", "E", "F"]),
])
class Foo{}
Run Code Online (Sandbox Code Playgroud)

如何在 Kotlin 中表达这个注解数组嵌套构造?

annotations spring-annotations kotlin

3
推荐指数
1
解决办法
424
查看次数

“ORA-00942: 表或视图不存在”仅在存储过程中运行时

对于 PL-SQL 人员来说,这应该很容易选择。在将此问题标记为重复之前,请确保虽然错误消息可能很常见,但潜在问题与上一个问题相同。如果是这样,请提供指向已解决的确切逻辑重复问题的链接。一世

当我登录到我的模式时,我执行以下 PL-SQL 代码:

DECLARE
  v_rpt_per_key NUMBER := 0;
BEGIN

  SELECT MAX(rpt_per_key)
  INTO v_rpt_per_key
  FROM rxfinods_sta.hd_invc_ln_item_dtl_stat;

  dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

END;
/
Run Code Online (Sandbox Code Playgroud)

查询成功执行,最大值RPT_PER_KEY写入 Toad 中的输出窗口。

但是,当我在一个过程中执行基本相同的代码时。

CREATE OR REPLACE PROCEDURE hd_purge_test
IS
  v_rpt_per_key NUMBER := 0;
  BEGIN

    SELECT MAX(stat.rpt_per_key)
    INTO v_rpt_per_key
    FROM rxfinods_sta.hd_invc_ln_item_dtl_stat stat;
    --HD_INVC_LN_ITEM_DTL_STAT        

    dbms_output.PUT_LINE('v_RPT_PER_KEY=' || v_rpt_per_key);

    EXCEPTION
    WHEN NO_DATA_FOUND THEN
      NULL;
    WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
      RAISE;
  END hd_purge_test;
Run Code Online (Sandbox Code Playgroud)

我收到表不存在的错误。

[Warning] ORA-24344: success with compilation error
14/21   PL/SQL: ORA-00942: …
Run Code Online (Sandbox Code Playgroud)

oracle plsql stored-procedures ora-00942

2
推荐指数
1
解决办法
2万
查看次数

获取删除的SQL记录数

我想获取已删除多少记录的行数。下面的查询返回将受影响的记录数,但是

SELECT COUNT(*) FROM suppliers
WHERE EXISTS
  ( SELECT customers.customer_name
    FROM customers
    WHERE customers.customer_id = suppliers.supplier_id
    AND customer_id > 25 );
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西,在删除行之后,我可以在前端显示已删除的记录数。

SELECT COUNT(*) FROM suppliers(
DELETE from supplier(
    WHERE EXISTS
      ( SELECT customers.customer_name
        FROM customers
        WHERE customers.customer_id = suppliers.supplier_id
        AND customer_id > 25 ));
Run Code Online (Sandbox Code Playgroud)

我不想运行查询两次,一次查询要删除的记录数,如果大于0,则运行第二次查询删除记录。

sql oracle rowcount sql-delete

2
推荐指数
1
解决办法
2万
查看次数

ROWID作为PL/SQL中的参数

我正在尝试创建一个帮助器存储过程来保存重复的代码.

我编写了以下存储过程,它接受表名,status_id和ROWID.

PROCEDURE sp_update_stage_status(p_table_name IN VARCHAR2,
                                 p_status_id IN NUMBER,
                                 p_rowid IN ROWID)
AS
BEGIN       
  execute immediate 'UPDATE ' || p_table_name
                 || ' SET STATUS_ID = ' || p_status_id 
                 || ' WHERE ROWID = ' || p_rowid;       
END;
Run Code Online (Sandbox Code Playgroud)

但是每当我执行它时,我得到以下内容.

ORA-00904: "AAATQEAAEAAAAHEAAB": invalid identifier
ORA-06512: at "OBR_DEV.PKG_COMMON", line 32
ORA-06512: at "OBR_DEV.PKG_DIRECTORY", line 449
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

oracle plsql stored-procedures rowid ora-00904

2
推荐指数
1
解决办法
2702
查看次数

如何使用oracle语句从1组中创建一行

有一组如下.

 refno | col1 | col2
---------------------
   1   |   a  |  aa 
   1   |   b  |  bb
   1   |   c  |  cc
   1   |   d  |  dd
Run Code Online (Sandbox Code Playgroud)

我想使用Oracle SQL这样做:

refno   a     b    c    d    
1       aa    bb   cc   dd
Run Code Online (Sandbox Code Playgroud)

怎么做?

sql oracle grouping

2
推荐指数
1
解决办法
43
查看次数

如何在C++中保存.txt文件?

我创建了一个在 .txt 文件中编写代码并从中读取内容的代码。但是,如果我关闭程序并再次开始写入,它会删除旧文本并用新文本覆盖它。

有没有办法不覆盖现有数据?

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

void check() {

    string text;
    ifstream file;
    file.open("test.txt");
    getline(file, text);

    if (text == "") {
        cout << "There's no data in file" << endl;
    } else {
        cout << "File contains:" << endl;
        cout << text << endl;
    }
}

int main() {

    check();

    string text;
    ofstream file;
    file.open("test.txt");
    cout << "Type some text" << endl;
    getline(cin, text);
    file << text;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++

2
推荐指数
1
解决办法
4万
查看次数