在JAVA中执行现有的DocumentDB存储过程

时间:2016-12-28 11:30:35

标签: stored-procedures azure-cosmosdb

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

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

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

2 个答案:

答案 0 :(得分:1)

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

这是一个example,用于在DocumentDB中创建和执行存储过程。

如果能解决您的问题,请告诉我。

答案 1 :(得分:0)

您可以使用

获取对现有存储过程的引用
SELECT p.* FROM posts p JOIN follows f ON p.userId = f.leaderId WHERE f.followerId = $userID;

获得参考后,请调用存储过程

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

options对象的类型为StoredProcedureResponse res = docDbClient.executeStoredProcedure(sProc.getSelfLink(), options, new Object[]{params}); ,如果您使用的是分区DocumentDB,则可用于设置分区键等属性