假设我有一个 Windows 用户环境变量 SOME_STRING。
是否可以在 PL/pgSQL 函数中使用它的值?
如果没有,我是否需要使用不受信任的语言(如 PL/pythonu),或者我可以使用受信任的语言吗?
我在 PG 9.2
我已经设置ft_min_word_len = 1
为my.cnf
文件,也SHOW VARIABLES LIKE 'ft_min_word%'
显示ft_min_word_len as 1
. 然后我重新加载了所有数据库表,它仍然没有搜索一个字符的单词。
我的表:
CREATE TABLE IF NOT EXISTS event (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(80) NOT NULL,
description TEXT,
time TIMESTAMP DEFAULT 0,
FULLTEXT(name)
);
Run Code Online (Sandbox Code Playgroud)
我的查询:
SELECT event.id AS eid,
event.name AS ename
FROM event
WHERE MATCH(event.name) AGAINST('+W*' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
我正在寻找的事件名称是 W.W.W. + Pavel Fajt + Vladimir 518 @ Sono
请问还有什么可能导致问题?
编辑:我正在使用 InnoDB,抱歉我之前没有提到过。
如何更改所有会话的 SESSION_CACHED_CURSORS?
我在 google 和 oracle 网站上找到:
Alter Session...
但我需要在所有会话中更改它,而不仅仅是为其中一个会话。
我该怎么做?
更新1:
SQL> alter session set session_cached_cursors=800 scope=both sid='*';
alter session set session_cached_cursors=800 scope=both sid='*'
*
ERROR at line 1:
ORA-02248: invalid option for ALTER SESSION
Run Code Online (Sandbox Code Playgroud) 我无法在 PostgreSQL C 扩展代码中获取环境变量。
例如,此函数始终返回111
:
#include "postgres.h"
#include "fmgr.h"
#include <stdlib.h>
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(myinc);
Datum
myinc(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
char* envar = getenv("MYINC");
if (envar) {
PG_RETURN_INT32(arg + atoi(envar));
} else {
PG_RETURN_INT32(111);
}
}
Run Code Online (Sandbox Code Playgroud)
虽然此 C 程序按预期工作,但它会打印以下内容MYINC
:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("MYINC: %s", getenv("MYINC"));
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我这里说的是sql server。
但是在进行一些自动化操作时,我需要知道我是在天蓝色还是普通sql中。我怎样才能做到这一点?
sql-server azure-sql-database environment-variables sql-server-2016 azure