小编ssc*_*ber的帖子

在触发器函数中使用动态表名INSERT

我不确定如何实现以下内容:

CREATE OR REPLACE FUNCTION fnJobQueueBEFORE() RETURNS trigger AS $$
    DECLARE
        shadowname varchar := TG_TABLE_NAME || 'shadow';
    BEGIN
        INSERT INTO shadowname VALUES(OLD.*);
        RETURN OLD;
    END;
$$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

即将值插入到具有动态生成名称的表中.
执行上面的代码会产生:

ERROR:  relation "shadowname" does not exist
LINE 1: INSERT INTO shadowname VALUES(OLD.*)
Run Code Online (Sandbox Code Playgroud)

它似乎表明变量不会作为表名扩展/允许.我在Postgres手册中没有发现这个.

我已经尝试过EXECUTE这样的事情:

  EXECUTE 'INSERT INTO ' || quote_ident(shadowname) || ' VALUES ' || OLD.*;
Run Code Online (Sandbox Code Playgroud)

但没有运气:

ERROR:  syntax error at or near ","
LINE 1: INSERT INTO personenshadow VALUES (1,sven,,,)
Run Code Online (Sandbox Code Playgroud)

RECORD类型似乎失去了:OLD.*似乎被转换为字符串,并得到的重新解析,导致各种各样的类型的问题(例如NULL值). …

postgresql triggers dynamic-sql plpgsql

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

在GlassFish上自动启动JavaDB(Derby)

我打算将GlassFish v3开源版本部署到生产环境中.它带有JavaDB(Apache Derby),这正是我需要的.唯一的问题是GlassFish启动时默认情况下不启动JavaDB.我必须转到命令行并输入:

asadmin start-database
Run Code Online (Sandbox Code Playgroud)

有没有办法让数据库在服务器(GlassFish)启动时自动启动?我讨厌每次在开发应用程序时手动执行此操作,我当然不希望在生产中执行此操作.

提前致谢

glassfish derby javadb glassfish-3

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

ctags支持moops

Moops通过以下构造增强了perl语法:

class MyPkg::MyClass {
   # ...
}
Run Code Online (Sandbox Code Playgroud)

并增加了通过引入新关键字来声明成员函数签名的可能性,fun并且method:

class MyPkg::MyClass {
    method run(ArrayRef $ar){
    }
 }
Run Code Online (Sandbox Code Playgroud)

我使用vim和tag文件来导航我的代码库,但这些新的关键字是未知的ctags,所以类,函数和方法都没有编入索引.我该如何改善这种情况?

vim perl ctags exuberant-ctags moops

8
推荐指数
1
解决办法
292
查看次数

在postgres中防止和/或检测周期

假设有如下模式:

CREATE TABLE node (
  id       SERIAL PRIMARY KEY,
  name     VARCHAR,
  parentid INT REFERENCES node(id)
);
Run Code Online (Sandbox Code Playgroud)

此外,我们假设存在以下数据:

INSERT INTO node (name,parentid) VALUES
('A',NULL),
('B',1),
('C',1);
Run Code Online (Sandbox Code Playgroud)

有没有办法防止创建周期?例:

UPDATE node SET parentid = 2 WHERE id = 1;
Run Code Online (Sandbox Code Playgroud)

这将创造一个循环 1->2->1->...

postgresql triggers plpgsql recursive-query

6
推荐指数
1
解决办法
1548
查看次数

子元素可以均匀填充网格吗?

我想知道是否有可能在qml中创建一个元素网格,它完全均匀地填充网格/父级的宽度和高度:

Grid {
    columns: 2
    Repeater {
        model: 4
        Rectangle {
            width: /* ??? */
            height: / * ??? */
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为必须在这里设定绝对值.使用anchors.fill: parent不起作用,以及类似的东西width: parent.width / 2.

qml

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

更新plpgsql中触发器函数中的多个列

给定以下架构:

create table account_type_a (
  id SERIAL UNIQUE PRIMARY KEY,
  some_column VARCHAR
);

create table account_type_b (
  id SERIAL UNIQUE PRIMARY KEY,
  some_other_column VARCHAR
);

create view account_type_a view AS select * from account_type_a;
create view account_type_b view AS select * from account_type_b;
Run Code Online (Sandbox Code Playgroud)

我尝试在plpgsql中创建一个通用的触发器函数,它可以更新视图:

create trigger trUpdate instead of UPDATE on account_view_type_a
for each row execute procedure updateAccount();    
create trigger trUpdate instead of UPDATE on account_view_type_a
for each row execute procedure updateAccount();
Run Code Online (Sandbox Code Playgroud)

我的不成功的努力是:

create function updateAccount() returns trigger …
Run Code Online (Sandbox Code Playgroud)

sql postgresql triggers dynamic-sql plpgsql

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

例外:AbstractMethodError:javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response $ StatusType;

当使用jersey 1.18尝试POST请求时,我得到以下异常:

Exception in thread "main" java.lang.AbstractMethodError: javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType;
at javax.ws.rs.WebApplicationException.computeExceptionMessage(WebApplicationException.java:205)
at javax.ws.rs.WebApplicationException.<init>(WebApplicationException.java:179)
at javax.ws.rs.WebApplicationException.<init>(WebApplicationException.java:244)
at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:159)
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
at com.sun.jersey.api.client.Client.handle(Client.java:652)
at com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:706)
at com.sun.jersey.api.client.WebResource.access$400(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:555)
at jtmt.shell.commands.upld.TrcUploader.upload(TrcUploader.java:29)
at jtmt.shell.commands.trcrt.ICMPTraceRoute.run(ICMPTraceRoute.java:92)
at jtmt.shell.commands.Main.<init>(Main.java:42)
at jtmt.shell.commands.Main.main(Main.java:64)
Run Code Online (Sandbox Code Playgroud)

产生这个的代码是:

    Trace trc = Trace.fromTracerouteResult(trace);
    WebResource wr = _c.resource(URL);
    WebResource.Builder wrb = wr.cookie(new Cookie("user", USER));
    wrb = wrb.cookie(new Cookie("auth", AUTH));
    wrb.post(trc);
    return true;
Run Code Online (Sandbox Code Playgroud)

entiry Trace看起来像这样:

@XmlRootElement
public class Trace {
    private Map<Integer,List<String>> addressesPerHop;
    private String source;
    private String traget;

    /* getters …
Run Code Online (Sandbox Code Playgroud)

java jax-rs jaxb jersey-client

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

将函数/子例程导入子类

我正在使用Moops,我想要这样的工作:

use Moops;

class A {
  fun f {
    print "yay,f!\n";
  }
}

class B extends A {
  fun g {
    f();
  }
}
B->g(); # should print 'yay, f!'
Run Code Online (Sandbox Code Playgroud)

相反,这会产生:

Undefined subroutine &B::f called at static-functions-lexical-scope.pl line 11.
Run Code Online (Sandbox Code Playgroud)

我可以通过继承Exporterin A和一个use语句来"修复"这个B:

class A extends Exporter {
  our @EXPORT = qw(f);
  fun f {
    print "yay,f!\n";
  }
}

class B extends A {
  use A;
  fun g {
    f();
  }
}
Run Code Online (Sandbox Code Playgroud)

这看起来有点笨拙,但如果 …

perl moops

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