标签: java-stored-procedures

从PHP调用MongoDB中存储的JavaScript函数

我将此函数存储在db.system.js中

function SomeFunc(o) {
    x = db.Collection;
    while( 1 ) {
        var c = x.find({},{_id:1}).sort({_id:-1}).limit(1);
        var i = c.hasNext() ? c.next()._id + 1 : 1;
        o._id = i;
        x.insert(o);
        var err = db.getLastErrorObj();
        if( err && err.code ) {
            if( err.code == 11000 /* dup key */ )
                continue;
            else
                print("unexpected error inserting data: " + tojson(err));
        }
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在PHP中

print_r(
    $db->execute("SumeFunc(o)", array("name" => "test"))
);
Run Code Online (Sandbox Code Playgroud)

错误

Array
(
    [errno] => -3
    [errmsg] => invoke failed: JS Error: …
Run Code Online (Sandbox Code Playgroud)

php mongodb java-stored-procedures mongodb-php

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

用 PL/SQL 和 Java 编写的存储过程的性能比较

经过这里的讨论后,我现在还有一个问题。

假设有一个企业级应用程序,拥有数百万用户群和每天数百万次交易。性能虎钳,这会更好。

  1. Java 存储过程
  2. 或 Oracle 存储过程 (Pl/SQL)

PS:当我说企业应用程序开发时,我的意思是从开发人员的角度来看,我们有不同的抽象层。测试框架。部署在多个刀片上的自动化测试和广泛的调试等

java performance plsql stored-procedures java-stored-procedures

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

在 Oracle 数据库中将 byte[] 数组作为 blob 插入获取 ORA-01460:请求未实现或不合理的转换

我有一个 java 存储过程,我试图将一个 byte[] 数组插入到表中的 oracle blob 字段中。

我按如下方式创建了一个准备好的语句,但是当我执行准备好的语句时它会随机失败。我已经缩小了问题来自 pstmt.setBytes(4,content) 的范围。我得到的错误是:

ORA-01460: 请求的转换未实现或不合理。

private static void insertFile(Connection connOracle, int zipFileId, byte[] data, String filepath, String filename ) throws SQLException {

try {
    String QUERY = "INSERT INTO files(file_id, zip_file_id, filename, file_path, content) VALUES(SEQ_FILE_ID.nextval,?,?,?,?)";

    PreparedStatement pstmt = connOracle.prepareStatement(QUERY);

    pstmt.setInt(1,zipFileId);
    pstmt.setString(2, filename);
    pstmt.setString(3, filepath);
    pstmt.setBytes(4, data);

    System.out.println("INSERTING file_id " + filepath + ", " + filename + " INTO DATABASE");

    pstmt.execute();
    pstmt.close();
}
catch (SQLException e) {
    throw new SQLException(e.getMessage());  
}
Run Code Online (Sandbox Code Playgroud)

java oracle java-stored-procedures

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

Oracle存储过程是否比Oracle中的PL/SQL慢?

这是一个直截了当的问题:您是否知道Java存储过程是否比Oracle数据库中的PL/SQL慢?

我们已经将存储过程从PL/SQL迁移到Java只是为了对它进行基准测试,它的时间大约是PL/SQL的两倍.这也是你的体验吗?

谢谢.

oracle plsql java-stored-procedures

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

带有 ResultSet 和 OutPut 参数的 Spring JDBCTemplate 存储过程

我创建了一个存储过程,它返回结果行和两个输出参数。我无法找到任何春从事情,我可以得到ResultSet和outPutParameters。我想实现像 这样使用Spring框架。

spring resultset jdbctemplate output-parameter java-stored-procedures

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

JDBC CallableStatement - 一次性调用多个存储过程

要在 Java 中仅使用简单的 JDBC 调用 Oracle 的存储过程,我们可以这样做:

con.prepareCall("{ call ? = my_procedure(?) }");
callStm.registerOutParameter(1, Types.INTEGER);
callStm.setInt(2, -100);
callStm.execute()
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能在一个语句中调用多个过程prepareCall?例如:

con.prepareCall("{ call prepare_proc(); ? = my_procedure(?) }");
Run Code Online (Sandbox Code Playgroud)

当然这是无效的,但是如何修复它并一次性调用两个或多个程序呢?

java oracle jdbc java-stored-procedures

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

混淆了Oracle java存储过程中的类解析

我正在尝试在oracle中使用第三方java库.该库似乎有相同的1.4版本的JVM,我们的Oracle 10g服务器主机的兼容,因为它运行Oracle的罚款之外,所以我觉得我应该能得到这个工作.这个库最终使基于SOAP的HTTP请求,我也得到类解析错误,当我在Oracle中运行.

这是一条显示差异的线:

Class msgfact = Class.forName("com.sun.xml.messaging.saaj.soap.MessageFactoryImpl");
Run Code Online (Sandbox Code Playgroud)

我尝试使用loadjava实用程序将这些库注册到Oracle中,我得到了我认为是成功的结果:

C:\>loadjava -verbose -schema MYUSER -user MYUSER/MYPWD@dbinstance -force saaj-impl.jar

看起来所有东西都被加载了,我可以在该列表中看到这个MessageFactoryImpl类.但后来我尝试从Oracle SQL运行这行代码(在我编写的另一个类中并使用loadjava加载),此行抛出一个ClassNotFoundException(java.lang.ClassNotFoundException:com/sun/xml/messaging/saaj/soap/MessageFactoryImpl ).

然后我回去尝试在loadjava命令行添加"-resolve"开关.它就像这些saaj类正在注册,但它们没有正确解析.

如何成功地将这些saaj类放入Oracle中,或者如果由于某种原因Oracle已经加载了这些类,那么如何说服我自己的代码成功使用现有类?

FWIW,我已经采取措施确保授予适当的套接字权限,并且我的代码可以成功地向目标URL发出通用的http请求.它只是在使用库的SOAP栈来实现它时遇到了麻烦.

编辑:这是我的loadjava结果的示例.这似乎正好显示了什么是失败的,但我很困惑为什么这些特定类在解决前步骤中似乎得到正确处理时没有得到解决.我在这里删除了大约80%的文件,但还有其他类显示相同的类解决问题.

arguments: '-verbose' '-schema' 'MYSCHEMA' '-user' 'MYSCHEMA/MYSCHEMA@actest' '-resolve' '-force' 'saaj-impl.jar' 
[snip]
creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/EnvelopeFactory
loading  : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/EnvelopeFactory
creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/GifDataContentHandler
loading  : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/GifDataContentHandler
creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/JpegDataContentHandler
loading  : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/JpegDataContentHandler
creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageFactoryImpl
loading  : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageFactoryImpl
creating : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageImpl
loading  : class MYSCHEMA.com/sun/xml/messaging/saaj/soap/MessageImpl
[snip]
resolving: class MYSCHEMA.com/sun/xml/messaging/saaj/soap/AttachmentPartImpl
resolving: class …

java oracle loadjava java-stored-procedures

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

Spring Boot invalidDataAccessApiUsageException - OUT/INOUT 参数不可用

我在 Spring Boot 中使用 Oracle 存储过程,它有一些 IN/OUT 参数。

当我获取输出参数时,它会抛出异常invalidDataAccessApiUsageException: OUT/INOUT Parameter is not available: ent_mensaje.

这是存储过程的定义

create or replace PROCEDURE     fon_anula_programacion (
   ent_numero_operacion   IN       NUMBER,
   ent_numero_fisico      IN       VARCHAR2,
   ent_mensaje            IN OUT   VARCHAR2,
   ent_canal_origen       IN OUT   VARCHAR2,
   ent_senal_proceso      IN OUT   VARCHAR2,
   ent_senal_commit       IN OUT   VARCHAR2,
   ent_sw_pos             IN OUT   NUMBER
) IS
...
Run Code Online (Sandbox Code Playgroud)

实体类及其 @NamedStoredProcedureQuery

@Getter
@Setter
@Entity
@NoArgsConstructor
@NamedStoredProcedureQueries({
        @NamedStoredProcedureQuery(name = "Valores.AnularAdicionFondoSif",
                procedureName = "FON.FON_ANULA_PROGRAMACION",
                resultClasses = DTOAnularAdicionSIF.class,
                parameters = {
                        @StoredProcedureParameter(name = "ent_numero_operacion", type = BigDecimal.class, mode = ParameterMode.IN), …
Run Code Online (Sandbox Code Playgroud)

java spring oracle10g java-stored-procedures spring-boot

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

Oracle Java存储过程命令行交互

我有一个有趣的要求.

我们需要在Java存储过程中进行命令行交互.尽管使用dbms_java.grant_permission命令授予适当的权限,我遇到了java.io.IOException,我从System.in使用中读取java.io.InputStreamReader.

问题出在哪儿?

Java Source在这里:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;


import oracle.jdbc.driver.OracleDriver;

public class ExecuteInteractiveBatch {

    public static void aFunction() {

        Connection connection = null;
        try {
            int rowFetched = 0;

            connection = new OracleDriver().defaultConnection();

            Statement stmt = connection.createStatement();

            ResultSet rs = stmt.executeQuery("SELECT count(1) cnt from sometable where c = 2");

            int count = 0;
            if (rs.next()) {
                count = rs.getInt(1);
            }
            rs.close(); …
Run Code Online (Sandbox Code Playgroud)

java oracle java-stored-procedures

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

Oracle Java存储过程想知道谁是调用者?

我的Oracle数据库中有一个Java存储过程,我需要知道谁调用了它.我想根据调用它的人做不同的事情.我在网上搜索了这个,但我没有运气.

java oracle java-stored-procedures

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

是否可以从DB2下的Java存储过程中读取数据定义?

Hy all,

这是我关于stackoverflow的第一个问题,所以如果出现问题请告诉我.Howerver,我需要知道是否可以从DB2下的Java存储过程读取使用COBOL程序中声明的DD名称定义的数据集.

程序流程是: - 一个JCL调用一个STORED PROCEDURE - STORED PROCEDURE调用jar - jar尝试通过DD名称打开数据集

我试图从jZos库中使用ZFile类,但Java代码既不能在z/OS上看到DD名称和相关文件.我的疑问是:无法完成此任务,因为DB2上的JVM在隔离环境中运行,或者有特定的类/过程来访问数据集?

提前致谢!

cobol java-stored-procedures db2-zos

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