2016-12-28 47 views
-2

我有一个现有的存储过程并希望在java程序中执行它。是否有任何示例显示如何在不在同一个程序中创建存储过程的情况下执行此操作?在JAVA中执行现有的DocumentDB存储过程

我的存储过程有两个输入参数:

function Get_last_sync_time(name, phone_no) { 
    .... 
} 
+0

不确定你在问什么。 DocumentDB中的存储过程*持久*,就像您存储的任何其他数据一样。它们不限于正在运行的程序。也许编辑你的问题更具体?现在它确实没有多大意义。 –

回答

1

为了执行,你需要使用createStoredProcedure API的DocumentDB数据库中首先创建一个存储过程。我不确定“存在”存储过程是否意味着它已经存在于DocumentDB中。如果是,您可以使用executeStoredProcedure API来执行它。

这是一个example来创建和执行DocumentDB中的存储过程。

让我知道,如果这可以解决您的问题。

0

可以使用

StoredProcedure sProc = docDbClient.queryStoredProcedures(docDBCollection.getSelfLink(), new SqlQuerySpec("SELECT * FROM root r where r.id='" + "Get_last_sync_time" + "'"), null).getQueryIterable().toList().get(0); 

一旦你的参考,调用存储过程

StoredProcedureResponse res = docDbClient.executeStoredProcedure(sProc.getSelfLink(), options, new Object[]{params}); 

选项对象是RequestOptions类型的获取到现有的存储过程的引用,并可以使用如果您使用分区DocumentDB设置属性(如分区键)