如何通过天蓝色门户在cosmos数据库中保存和执行存储过程?
我试图从Script Explorer
做到这一点 - >Stored Procedure
看法,但是当我使用的按钮保存&执行那里,它只是给出了以下错误消息结果:如何通过天蓝色门户在cosmos数据库中保存和执行存储过程?
无法保存脚本
数据库帐户:myaccountname,脚本:HelloWorld的,消息:{ “代码”:500, “体”: “{\” 消息\ “:\” 已 发生错误\ “}”}
和Results
下的文本框不变。
如果你想测试在Azure门户网站这个功能,你可以删除参数“前缀”,并添加一个变量名“前缀”来您的存储过程。
此错误的原因是此功能需要来自外部的数据(通过参数),并且您不在Azure门户上提供此数据。
function upsertFans() {
var prefix = "";
var collection = getContext().getCollection();
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
'SELECT * FROM root r',
function (err, feed, options) {
if (err) throw err;
// Check the feed and if empty, set the body to 'no docs found',
// else take 1st element from feed
if (!feed || !feed.length)
getContext().getResponse().setBody('no docs found');
else
getContext().getResponse().setBody(prefix + JSON.stringify(feed[0]));
});
if (!isAccepted) throw new Error('The query was not accepted by the server.');
}
这种方法似乎不起作用。删除参数后,我尝试了'Save&Execute',但仍收到错误信息:'无法保存脚本' –
@MichaelRätzel:嗯...你能“保存”脚本吗?我刚才更新了我的脚本(我删除了我的代码中的一些降价字符),您可以复制我的代码并尝试“保存并执行”。如果你仍然无法运行,告诉我。 –
我再次用您的代码对其进行了测试,结果如下:虽然'保存存储过程失败'错误消息仍然出现,但脚本实际上已保存。手动刷新视图后,保存的存储过程变为可见。所以节约工作。我仍然不知道如何从Azure门户执行存储过程。 “结果”下的文本框仍然为空。但我希望存储过程用给定的代码输出一些东西。 –
@MichaelRätzel:我刚刚写了一个非常简单的CosmosDB脚本,并在Azure Portal上运行它。
function TestSample() {
getContext().getResponse().setBody("Hello World");
}
这里是我的结果:
我与你有同样的问题,有关Failed to save the stored procedure
。我做了什么来解决这个问题:
-
Save
的存储过程首先 - 左键单击以当前SP左栏
-
Save & Execute
的SP
我认为这是Azure门户的技术问题。试试这个并告诉我结果。
我按照你的建议试过了。以下是我观察到的情况:保存工作,尽管有错误消息。然后我使用了“Save&Execute”按钮:显示一条新的错误信息('保存脚本失败),“Results”下的文本框保持空白。所以这种方法并没有解决执行存储过程的问题。 –
保存并执行被禁用,你知道为什么吗? –
这是一个分区集合吗? –
该集合未分区。 –