我想计算每个 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) 我需要将作为主键一部分的列的唯一值从表中提取到物化视图中。如果使用“刷新完成”,我可以创建物化视图,但在尝试使用“提交时快速刷新”时却没有运气。谁能指出我是否错过了什么或者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) 我有一个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时.怎么可能?
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 标准库中实现了更优化的方法。你能举一个惯用的例子吗?
当注释具有基本类型(如 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 中表达这个注解数组嵌套构造?
对于 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) 我想获取已删除多少记录的行数。下面的查询返回将受影响的记录数,但是
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,则运行第二次查询删除记录。
我正在尝试创建一个帮助器存储过程来保存重复的代码.
我编写了以下存储过程,它接受表名,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)
我在这做错了什么?
有一组如下.
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)
怎么做?
我创建了一个在 .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) oracle ×6
sql ×4
kotlin ×2
plsql ×2
alfresco ×1
annotations ×1
c++ ×1
count ×1
dictionary ×1
grouping ×1
immutability ×1
ora-00904 ×1
ora-00942 ×1
postgresql ×1
primary-key ×1
rowcount ×1
rowid ×1
sql-delete ×1
visual-c++ ×1