小编Bra*_*sel的帖子

在 Select 语句计算中使用列别名 Oracle SQL

是否可以做类似的事情select 1 as foo, foo+1 from dual

这返回ERROR at line 1: ORA-00904: "FOO": invalid identifier

我有一个组成列的冗长计算,我希望能够轻松地使用该值在差异列中进行计算

sql oracle alias oracle11g

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

C++ Switch语句中的十六进制值

是否可以使用十六进制case语句执行开关?

例如:

switch (integer) {
    case: 1
         function();
         break;
    case: F:
         function();
         break;
}
Run Code Online (Sandbox Code Playgroud)

g ++抱怨说:

example.cpp: In function ‘int main()’:
example.cpp:148:18: error: ‘F’ was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

我假设编译器试图将其F视为变量.我知道,而不是F我可以使用值,15但十六进制会更方便.

其他控制语句的解决方案也不错.

c c++ switch-statement

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

触发器中的非更新列

我的问题是下面详述的触发器似乎正确执行,除了更新语句 UPDATE my_dblist SET passive_servername = v_newpassive WHERE server = :NEW.server AND dbname = :NEW.dbname;似乎没有发生的事实.旧记录将被删除并正确插入历史记录,但新记录没有在passive_servername下列出旧的活动服务器.我有一种感觉,这可能与它自治有关吗?

create or replace
TRIGGER cluster_check
AFTER INSERT ON my_dblist
FOR EACH ROW
DECLARE
pragma autonomous_transaction;
v_duplicates NUMBER;
v_newpassive varchar2(30);
BEGIN
SELECT count(*) INTO v_duplicates FROM my_dblist WHERE passive_servername         = :new.server and dbname = :new.dbname order by 1;
IF v_duplicates > 0
THEN 
SELECT server INTO v_newpassive FROM my_dblist WHERE passive_servername = :NEW.server AND dbname = :NEW.dbname ORDER BY 1;
UPDATE my_dblist
SET passive_servername = …
Run Code Online (Sandbox Code Playgroud)

sql oracle triggers plsql

0
推荐指数
1
解决办法
103
查看次数

标签 统计

oracle ×2

sql ×2

alias ×1

c ×1

c++ ×1

oracle11g ×1

plsql ×1

switch-statement ×1

triggers ×1