0

を使用してMonetDB.R、このコマンドを実行したいのですが、mclient を開きたくありません。これを行う一般的な方法はありますか?

create function div_noerror(l double, r double) returns double
4

1 に答える 1

3

MonetDB.R--の作者ハンネスより

DBに作成するだけです。既に存在する場合、これは失敗しますが、そのエラーをキャッチできます。それで

dbSendQuery(con, "create function div_noerror(l double, r double) returns double external name calc.div_noerror”) should work.

少し長い使用例を次に示します。

# example of division
dbGetQuery( con , "SELECT 1 / 2 AS a" )

# example of division by zero, which causes an error
dbGetQuery( con , "SELECT 1 / 0 AS a" )

# load the `div_noerror` function through a system call
dbSendQuery( con , "CREATE FUNCTION div_noerror(l DOUBLE, r DOUBLE) RETURNS DOUBLE EXTERNAL NAME calc.div_noerror" ) 

# use the div_noerror function instead of the `/` operator
dbGetQuery( con , "SELECT div_noerror( 1 , 2 ) AS a" )

# division by zero now returns a missing instead of crashing the entire query
dbGetQuery( con , "SELECT div_noerror( 1 , 0 ) AS a" )
于 2015-05-22T07:36:58.040 に答える