簡體   English   中英

在MonetDB中創建函數

[英]Create function in MonetDB

我正在嘗試在數據庫級別向monetDB添加一個簡單函數,該函數只執行sum(n)並返回結果

create function sys.foo(number int)
returns int
begin
declare tsum int;
set tsum = 0;
while number > 0 do
set tsum = tsum + number;
set number = number -1;
end while;
return tsum;
end;

嘗試執行上述代碼時,我看到如下錯誤

[錯誤代碼:0,SQL狀態:42000]語法錯誤,意外的$ end,預期為WHILE:“創建函數sys.foo(number int)”中輸入流的結尾

我可以在MySQL中添加相同的功能,並且可以正常工作!!

>select sys.foo(10) 
sys.foo(10)
-----------
55

可以讓我知道這里出了什么問題嗎?

這對我來說很好用(MonetDB,Mac OS X的2014年10月版)

➜ ~ mclient Welcome to mclient, the MonetDB/SQL interactive terminal (unreleased) Database: MonetDB v11.19.16 (unreleased), 'demo' Type \\q to quit, \\? for a list of available commands auto commit mode: on sql>create function sys.foo(number int) more>returns int more>begin more>declare tsum int; more>set tsum = 0; more>while number > 0 do more>set tsum = tsum + number; more>set number = number -1; more>end while; more>return tsum; more>end; operation successful (2.127ms)

sql>select sys.foo(10); +------------------+ | foo_single_value | +==================+ | 55 | +------------------+ 1 tuple (1.771ms)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM