我正在使用Jersey和Guice作为我的IOC容器。我想知道是否可以将ExceptionMapper与特定的URI关联。原因是我想根据访问的URI不同地映射相同的异常。例如,假设我为自定义异常提供了以下两个异常映射器:
public class MyExceptionMapperForFirstURI implements
ExceptionMapper<MyException> {..return response based on first URI..}
public class MyExceptionMapperForSecondURI implements
ExceptionMapper<MyException> {..return response based on second URI..}
Run Code Online (Sandbox Code Playgroud)
据我了解,您在ServletModule中绑定了ExceptionMapper,如下所示:
public class MyModule extends ServletModule {
@Override
public void configureServlets() {
super.configureServlets();
bind(MyCustomExceptionMapper.class);
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何进行绑定MyExceptionMapperForFirstURI,MyExceptionMapperForSecondURI以使它们与正确的URI相关联。这可能吗?如果可能的话:这是正确的方法吗?
我正在尝试在Oracle中编写一个自定义聚合函数,并将该函数与一些其他函数组合在一起.作为一个例子(模拟我的问题)假设我的自定义聚合做数字的总和看起来像:
CREATE OR REPLACE TYPE SUM_AGGREGATOR_TYPE AS OBJECT (
summation NUMBER,
STATIC FUNCTION ODCIAggregateInitialize(agg_context IN OUT
SUM_AGGREGATOR_TYPE) RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateIterate(self IN OUT SUM_AGGREGATOR_TYPE,
next_number IN NUMBER) RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateMerge(self IN OUT SUM_AGGREGATOR_TYPE,
para_context IN SUM_AGGREGATOR_TYPE) RETURN NUMBER,
MEMBER FUNCTION ODCIAggregateTerminate(self IN SUM_AGGREGATOR_TYPE,
return_value OUT NUMBER, flags IN NUMBER) RETURN NUMBER
);
Run Code Online (Sandbox Code Playgroud)
CREATE OR REPLACE TYPE BODY SUM_AGGREGATOR_TYPE IS
STATIC FUNCTION ODCIAggregateInitialize(agg_context IN OUT
SUM_AGGREGATOR_TYPE)
RETURN NUMBER IS
BEGIN
agg_context := SUM_AGGREGATOR_TYPE(NULL);
RETURN ODCIConst.Success;
END;
MEMBER FUNCTION …Run Code Online (Sandbox Code Playgroud) 如何线性化嵌套表,嵌套表本身也包含嵌套表(注意:内部表可能具有不同的大小).假设我有以下类型声明:
CREATE OR REPLACE TYPE VECTOR
IS
TABLE OF NUMBER;
CREATE OR REPLACE TYPE TABLE_OF_VECTOR
IS
TABLE OF VECTOR;
Run Code Online (Sandbox Code Playgroud)
以下PL/SQL片段:
DECLARE
number_table TABLE_OF_VECTOR;
result_vector VECTOR;
BEGIN
number_table := table_of_vector(vector(23, 4, 2222, 22222222),
vector(2, 1, 766, 2), vector(2, 1, 5));
END;
Run Code Online (Sandbox Code Playgroud)
有没有办法我可以线性化number_table并将其在result_vector中的所有值存储为一个连续的数字列表?我想最终得到:
result_vector == vector(23, 4, 2222, 22222222, 2, 1, 766, 2, 2, 1, 5)
Run Code Online (Sandbox Code Playgroud)