小编Arl*_*rlo的帖子

从存储过程返回的STRUCT中读取ARRAY

在数据库中有三种Oracle自定义类型(简化)如下:

create or replace TYPE T_ENCLOSURE AS OBJECT(
  ENCLOSURE_ID      NUMBER(32,0),
  ENCLOSURE_NAME    VARCHAR2(255 BYTE),
  ANIMALS           T_ARRAY_ANIMALS,

  MEMBER FUNCTION   CHECK_IF_RED RETURN BOOLEAN
);


create or replace TYPE T_ARRAY_ANIMALS is TABLE OF T_ANIMAL;


create or replace TYPE T_ANIMAL AS OBJECT(
  ANIMAL_ID NUMBER(32,0),
  NUMBER_OF_HAIRS NUMBER(32,0)
);
Run Code Online (Sandbox Code Playgroud)

和一个构建对象树的函数

FUNCTION GET_ENCLOSURE ( f_enclosure_id zoo_schema.ENCLOSURE_TABLE.ENCLOSURE_ID%TYPE ) RETURN T_ENCLOSURE
AS
    v_ENC T_ENCLOSURE;
    v_idx pls_integer;

BEGIN

    v_ENC := T_ENCLOSURE(
        f_enclosure_id,
        NULL,
        T_ARRAY_ANIMALS(T_ANIMAL(NULL,NULL))
    );

    SELECT ENCLOSURE_NAME
    INTO   v_ENC.ENCLOSURE_NAME
    FROM   ENCLOSURE_TABLE WHERE ENCLOSURE_ID = f_ENCLOSURE_ID;

    SELECT
        CAST(MULTISET(
            SELECT ANIMAL_ID, NUMBER_OF_HAIRS
            FROM …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc

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

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

在 Apache Tomcat 应用程序中,MBean 字段是否需要易失/同步才能使 JMX 更新出现在其他线程中?

我已经在 Spring Web 应用程序中公开了 Bean,以防我们需要动态更改配置。最近,我一直在审查并发性,我开始想知道当您通过 JMX 改变其中一个 bean 时,其他线程中会发生什么?

JMX 是否有某种方法强制刷新内存模型,以便您无需担心使字段变得易失/同步以确保其他线程看到更改?

当 Tomcat 创建一个新线程来处理请求时,即使该字段不是线程安全的,该线程也会看到更改,对吗?因此,除非我需要更改立即在当前请求线程中生效,否则是否有理由担心并发问题?

java concurrency tomcat jmx mbeans

5
推荐指数
1
解决办法
457
查看次数

如何根据功能禁用整个示例?

我的 Rust 项目有仅与某些功能相关的示例

我可以忽略主要功能:

#[cfg(feature = "foo")]
fn main() {
Run Code Online (Sandbox Code Playgroud)

但是其他依赖于该功能的语句在我运行时会导致错误cargo test。所以我必须在函数上使用一些 cfg 属性语句,并使用语句来禁用依赖于该功能的代码。

有没有办法根据功能配置忽略整个示例文件?

另外,由于 main 在没有该功能的情况下被隐藏,cargo test因此出现以下错误:

错误:找不到主函数

所以这不是一个好的解决方案。

rust

5
推荐指数
1
解决办法
1241
查看次数

可在模板中使用的组件实例名称空间/标识

我理解如何使用ElementRef并且应该避免设置元素id,但是仍然存在要设置元素的id属性的情况.

例如,使用输入和标签(由于第三方CSS而无法嵌套):

<input [attr.id]="'myinput'+instanceId" />
<label = [attr.for]="'myinput'+instanceId">My Label</label>
Run Code Online (Sandbox Code Playgroud)

为简单起见,我刚刚增加了这样的数字:

let numInstances = 0;

@Component({

})
export class MyComponent {

  private instanceId: number;

  constructor(){
    this.instanceId = numInstances++;
  }
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有可以在模板中使用的组件实例命名空间.像这样的东西?Angular2将用组件实例的唯一字符串替换#.

<input [attr.id]="#myinput" />
<label = [attr.for]="#myinput">My Label</label>
Run Code Online (Sandbox Code Playgroud)

如果这不存在,您认为我应该向Angular2团队提出功能请求吗?

angular

5
推荐指数
1
解决办法
4798
查看次数

如何用懒惰的路线打开MatDialog

我想MatDialog从延迟加载的中打开组件NgModule。做这个的最好方式是什么?

查看angular.io,路由器似乎是延迟加载模块的唯一方法。

因此,我正在考虑将一个已命名的路由器出口放在a 内MatDialog,然后打开对话框并将该已命名的出口设置为我的惰性路由。这是最好的方法吗?

如何将<router-outlet name="dialog"></router-outlet>一个内MatDialog组件的行为?如果我重新加载页面而对话框<router-outlet>不显示,会发生什么?MatDialog.open().afterOpen()设置路线之前,我需要等待吗?

还是有一种不使用路由器的替代方法?

angular-material2 angular

5
推荐指数
0
解决办法
564
查看次数

你如何重置/清除d3刷?

D3版本4.2.2

我有一个图表,我希望用户能够通过画笔选择继续放大.我想在结束事件中清除或重置我的画笔,以便用户看不到旧画笔.

当前的TypeScript代码:

    let brushGroup = this.svg.append('g')
        .attr('class', 'brush');

    let b = brushX()
        .on('start', () => {
            console.log('start brush');
            brushGroup.style('opacity', 100);
        })
        .on('end', () => {
            console.log('end brush', event.selection);
            // remove and display none destroy the brush, so use opacity
            brushGroup.style('opacity', 0);

            this.updateDateRange(this.xScale.invert(event.selection[0]),
                this.xScale.invert(event.selection[1]));
        });

    brushGroup.call(b);
    console.log(brushGroup);
Run Code Online (Sandbox Code Playgroud)
  • display: none 防止将来的刷子启动事件
  • brushGroup.remove() 也摧毁了画笔
  • 不透明度工作,但画笔仍然存在(鼠标光标在悬停时更改)

那么清除或重置画笔的正确方法是什么?

  1. 我应该把它移到0,0吗?
  2. 我应该每次销毁旧刷子并创建一个新刷子吗?

d3.js d3v4

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

为什么我的 Oracle DataSource 仅在单元测试时出现重放错误?

我的 Spring Boot 1.5.17 (Spring 4.3.20) 服务器在 bootRun 或部署时工作正常。

但是,我的 Oracle 数据源仅在单元测试时失败:

java.lang.AssertionError:服务器正在发送非空重播上下文,但我们的 replayModes=[]

Google 搜索此错误没有确切的结果。

我能够使用不同的 Oracle 数据库进行单元测试。

我在完整的应用程序测试上下文中收到错误

@RunWith(SpringRunner.class)
@SpringBootTest(
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
        classes = { TestingUserConfiguration.class, Application.class }
)
Run Code Online (Sandbox Code Playgroud)

以及单个数据源配置和服务

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {
        MyDbConfig.class,
        MyService.class
})
Run Code Online (Sandbox Code Playgroud)

oracle.jdbc.pool.OracleDataSource都有oracle.jdbc.replay.OracleConnectionPoolDataSourceImpl错误。UCP 没有区别。

OracleConnectionPoolDataSourceImpl有一个不同的错误:

java.sql.SQLException:不支持的功能

尝试从 OJDBC 12.2 升级到 2018.3,没有区别。

以前有人见过这个错误吗?关于为什么它只出现在 Spring 单元测试中的任何想法?

oracle jdbc spring-boot

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

标签 统计

angular ×2

java ×2

jdbc ×2

oracle ×2

angular-material2 ×1

concurrency ×1

d3.js ×1

d3v4 ×1

dojo ×1

jmx ×1

mbeans ×1

rust ×1

spring-boot ×1

tomcat ×1