小编Ang*_*ina的帖子

从sql脚本返回值到shell脚本

我有shell脚本调用以下sql脚本:

     INSERT INTO SEMANTIC.COUNT_STATISTICS (...);
     UPDATE SEMANTIC.COUNT_STATISTICS 
     SET PRNCT_CHANGE = 1.1;


  --want to store result of this bellow select statement in model_count variable

      select PRNCT_CHANGE
      FROM SEMANTIC.COUNT_STATISTICS
      WHERE model = '&MY_MODEL'
      AND NEW_DATE = (
                      select max(NEW_DATE)
                      from SEMANTIC.COUNT_STATISTICS
                      where MODEL = '&MY_MODEL'
                     );
Run Code Online (Sandbox Code Playgroud)

现在,如何将此PERCENTAGE_NUMBER变量返回到我的shell脚本?

我的shell脚本如下:

#!/bin/bash
#
# setup oracle, java, and d2rq environment
. /etc/profile.d/oracle.sh
. /etc/profile.d/java.sh
. /etc/profile.d/d2rq.sh

cd /opt/D2RQ

model_count=$(sqlplus user/pass @count.sql 'MODEL')

if ["$model_count" > 0]; then
   echo "percentage count is positive"
else
   echo "its …
Run Code Online (Sandbox Code Playgroud)

oracle shell sqlplus

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

什么1>/dev/null 2>&1&pid1 = $!意思?

我正在学习如何并行运行多个进程

  ./script1.sh param1 1>/dev/null 2>&1 &
  pid1=$!
  ./script1.sh param2 1>/dev/null 2>&1 &
  pid2=$!
Run Code Online (Sandbox Code Playgroud)

我不确定这里发生了什么:

   1>/dev/null 2>&1
   pid1=$!
Run Code Online (Sandbox Code Playgroud)

parallel-processing shell

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

每次EXECUTE IMMEDIATE后都需要COMMIT吗?

我在一个oracle过程中有多个EXECUTE IMMEDIATE命令.

EXECUTE IMMEDIATE 'DELETE  FROM tbl1'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl1...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl3'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl3 ...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl4'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl4 ...';
COMMIT; 
Run Code Online (Sandbox Code Playgroud)

我是否需要所有这些COMMIT,或者只是在程序结束时?

oracle stored-procedures executequery oracle11g sp-executesql

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

无法使用Tomcat服务器从IntelliJ中运行/调试jsp页面

我创建了一个新项目并为它创建了工件.当我从命令提示符运行Tomcat并转到:http://localhost:8080/IntelProject1/index.jsp

我可以看到我的页面.

但是当我尝试从IntelliJ运行它时,它会打开空页: http:// localhost:8080

如果我试着去: http://localhost:8080/IntelProject1/index.jsp

这是它显示的内容:

HTTP Status 404 - /IntelProject1/index.jsp

type Status report

message /IntelProject1/index.jsp

description The requested resource is not available.

Apache Tomcat/7.0.57
Run Code Online (Sandbox Code Playgroud)

它能从tomcat中找到它的原因是因为我在tomcat/conf文件夹中编辑了server.xml文件:

<Context path="/IntelProject1" docBase="C:\Users\ibogojevic\Desktop\IntelProject1\web\JSP" />
Run Code Online (Sandbox Code Playgroud)

但我希望能够从内部打开它并进行调试 IntelliJ

也许我的神器是错的.有什么想法吗?

java jsp tomcat intellij-idea

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

为不太可能的场景创建单元测试,是否值得麻烦?

对于下面的方法,有没有办法创建单元测试来导致DatatypeConfigurationException,所以我可以测试它是否抛出ConversionException

这是我的代码:

public static XMLGregorianCalendar getXMLGregorianCalendar(final LocalDate localDate) {
    XMLGregorianCalendar xmlGregorianCalendar = null;
    if (localDate != null) {
        final String dateString = localDate.format(yyyMMddFormat);
        try {
            xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(dateString);
        } catch (DatatypeConfigurationException e) {
            throw new ConversionException("Unable to format LocalDate.", e);
        }
    }

    return xmlGregorianCalendar;
}
Run Code Online (Sandbox Code Playgroud)

java unit-testing

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

查找String是否不在ENUM列表中的最佳方法

我需要查找给定的String是否不在的列表中ENUMs

这些Strings带有空格,例如:“儿童护理”,“信用卡”等。

除以外的任何其他ExpenseType映射都应映射到。应该完全忽略。OTHERHOAHOA

我的ENUM如下:

public enum ExpenseType {
    AUTOLOAN("AUTO LOAN"),
    ALIMONY("ALIMONY"),
    CHILDCARE("CHILD CARE"),
    CREDITCARDS("CREDIT CARDS"),
    INSTALLMENTLOANS("INSTALLMENT LOANS"),
    FOOD("FOOD"),
    UTILITIES("UTILITIES"),
    TRANSPORTATION("TRANSPORTATION"),
    OTHER("OTHER");

    private String expenseType; 
    ExpenseType(String expenseType) {
        this.expenseType = expenseType;
    }   
    @Override public String toString() {
        return this.expenseType;
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在这样做的方式如下:

String expenseDescription = expense.getExpenseDesc().replaceAll(" ", "");
if(EnumUtils.isValidEnum(ExpenseType.class, expenseDescription)) {
    monthlyExpenses.setType(ExpenseType.valueOf(expenseDescription).toString());
} 
else if(!expenseDescription.equals("HOA")) {
   monthlyExpenses.setType(ExpenseType.OTHER.toString());
}
Run Code Online (Sandbox Code Playgroud)

有人知道更好的方法吗?

java enums

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

在SQL*Loader控制文件中设置日期格式

我的csv文件有"2009年9月17日上午11:06:06"作为COMPLETED_ON变量

我正在使用sql loader将数据加载到oracle,如下所示:

LOAD DATA
INFILE 'c:/load/file_name.csv'
APPEND
INTO TABLE tbl_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
COMPLETED_ON DATE "not sure what to put here",
) 
Run Code Online (Sandbox Code Playgroud)

在oracle中我创建了如下列:

具有本地时区的"COMPLETED_ON"TIMESTAMP(0)

如何在控制文件中更改COMPLETED_ON日期?

oracle to-date sql-loader

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

在过程中截断和插入不能一起工作

我需要截断表,然后使用过程在该表中插入数据.

但是,一个人喜欢dinamic sql,但另一个不喜欢:

create or replace 
procedure   RECREATE_AGGREGATE
AUTHID DEFINER
AS
BEGIN
    TRUNCATE TABLE AGGREGATE;    
    INSERT INTO AGGREGATE SELECT * FROM OLD_AGGREGATE;
END;
Run Code Online (Sandbox Code Playgroud)

错误(6,14):PLS-00103:遇到以下其中一项时遇到符号"TABLE":= =.(@%;符号":=在"TABLE"之前插入以继续.

如果我补充execute immediate各地TRUNCATE的语句,它工作正常,但插入的示数出来.如果我删除它,TRUNCATE TABLE抱怨...

create or replace 
    procedure   RECREATE_AGGREGATE
    AUTHID DEFINER
    AS
    BEGIN
        execute immediate 'TRUNCATE TABLE AGGREGATE';    
        INSERT INTO AGGREGATE SELECT * FROM OLD_AGGREGATE;
    END;
Run Code Online (Sandbox Code Playgroud)

错误(7,5):PL/SQL:忽略SQL语句错误(7,84):PL/SQL:ORA-00942:表或视图不存在

有些人可以在这里说清楚吗?

oracle plsql dynamic

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

按日期排序对象列表并应用过滤器

我有付款清单:

Payment 1
  CountyTaxAmount = 250.00
  CityTaxAmount   = 101.00
  LienAmount      = 0.00
  HazardAmount    = 0.00
  PaymentDueDate  = "2018-06-01"

Payment 2
  CountyTaxAmount = 10.00
  CityTaxAmount = 20.00
  LienAmount      = 0.00
  HazardAmount    = 0.00
  PaymentDueDate = "2018-05-01"
Run Code Online (Sandbox Code Playgroud)

我创建了一个接收此列表的函数currentDueDate.如果paymentDueDate等于之前 currentDueDate,另一种是最接近currentDueDate的,我想用该行中我的计算.

由于某种原因,我的排序不正常.有人可以解释我做错了什么.这是我的代码:

private EscrowStatusEnum determineEscrowStatus(Payment pcm, LocalDate currentDueDate) {
    EscrowStatusEnum escrowStatus = null;

    if(currentDueDate!= null && pcm!=null 
            && pcm.getPayment() != null 
            && !pcm.getPayment().isEmpty()) {

        Predicate<Payment> pcmRow = 
                it->it.getPaymentDueDate()!=null && !it.getPaymentDueDate().isAfter(currentDueDate);

        final Payment sortedRow = …
Run Code Online (Sandbox Code Playgroud)

java sorting lambda comparator java-8

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

如果element不为null,则使用lambda过滤器,否则忽略filter

我有一个lambda当前返回1st行的日期匹配日期,通过使用RecordNumber.

ProList 1
    RecordNumber 1
    ProEffectiveDate NULL

ProList 2
    RecordNumber 2
    ProEffectiveDate 2019-03-01

ProList 3
    RecordNumber 3
    ProEffectiveDate 2019-03-01
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

Predicate<ProList> filteredRow = 
                    it->it.getProEffectiveDate()!=null &&
                    it.getProEffectiveDate().equals(passedInDate);

final ProList minFilteredRow = ProList()
    .stream()
    .filter(filteredRow)                               
    .min(Comparator.comparing(ProList::getRecordNumber))
    .orElse(null);
Run Code Online (Sandbox Code Playgroud)

现在,我必须添加if ProEffectiveDate为null的功能,以便从列表中返回第一行.如果ProEffectiveDate为null,我该如何忽略此过滤器?

java lambda java-stream

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