本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7863050.html?templateId=1718516
背景
YashanDB创建表用的是小写做为表名,对函数参数有表名,要如何输入小写表名。
解决方法
以收集统计信息为例
1、对交互式的客户端,如:yasql、YDC(YashanDB Developer Center)
在单引号下加双引号限定为小写,
EXEC DBMS_STATS.GATHER_TABLE_STATS(‘SYS’, ‘“t_lower”’, ‘’, 1, FALSE, ‘FOR ALL COLUMNS SIZE AUTO’, 4, ‘AUTO’, TRUE);
2、非交互式命令,如: yasql sys/密码 -c “SQL命令”
除了加双引号限定还需要加反斜杆进行转义
yasql sys/密码 -c “EXEC DBMS_STATS.GATHER_TABLE_STATS(‘SYS’, ‘\“t_lower\”’, ‘’, 1, FALSE, ‘FOR ALL COLUMNS SIZE AUTO’, 4, ‘AUTO’, TRUE)”
详细案例
create table “t_lower” (a int, “b” char(10)); –
insert into “t_lower” values(1,‘aaa’);
commit;
EXEC DBMS_STATS.GATHER_TABLE_STATS(‘SYS’, ‘“t_lower”’, ‘’, 1, FALSE, ‘FOR ALL COLUMNS SIZE AUTO’, 4, ‘AUTO’, TRUE); – 收集小写表名统计信息
select table_name, last_analyzed from dba_tables where owner=‘SYS’ and lower(table_name)=‘t_lower’; – 查询收集结果
非交互式命令:
yasql sys/密码 -c “EXEC DBMS_STATS.GATHER_TABLE_STATS(‘SYS’, ‘\“t_lower\”’, ‘’, 1, FALSE, ‘FOR ALL COLUMNS SIZE AUTO’, 4, ‘AUTO’, TRUE)”