前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ORA-00904: "wm_concat":invalid identifier错误如何解决?

ORA-00904: "wm_concat":invalid identifier错误如何解决?

作者头像
AiDBA宝典
发布于 2023-05-23 01:18:22
发布于 2023-05-23 01:18:22
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

题目部分

ORA-00904: "wm_concat":invalid identifier错误如何解决?

答案部分

若在创建数据库的时候没有创建WMSYS用户,则在SQL或PL/SQL中有用到WM_CONCAT函数的时候就会报ORA-00904的错误。其实,WMSYS用户下的WM_CONCAT函数有很重要的用途,比如行转列,但是该函数不稳定。例如,在Oracle 10g上返回的是字符串类型,但是在Oracle 11gR2上返回的是CLOB类型。很多数据库开发人员在程序中都使用了该函数,若是系统升级,则会导致程序出现错误。为了减轻程序员修改程序的工作量,只有重建函数WM_CONCAT来解决该问题。

若没有创建WMSYS用户的话,则在查询DBA_OBJECTS视图的时候就不能查询到WM_CONCAT的相关信息。在正常情况下查询DBA_OBJECTS视图,会有如下的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 SQL> SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME LIKE 'WM_CONCAT%';

解决办法有两种,一种是采用Oracle本身的脚本来创建WM_CONCAT函数,一种是采用自己创建的函数来解决这个问题。

1、用Oracle自带脚本重建WMSYS用户的WMSYS.WM_CONCAT函数

运行如下脚本卸载WMSYS用户的数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@$ORACLE_HOME/rdbms/admin/owmuinst.plb

运行如下脚本安装WMSYS用户即可创建WMSYS.WM_CONCAT函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@$ORACLE_HOME/rdbms/admin/owminst.plb

解锁WMSYS用户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER USER WMSYS ACCOUNT UNLOCK;

2、自己订制脚本

如果只是单个用户使用,那么不用刻意去创建WMSYS用户,可以在所需的用户下运行订制脚本,生成WM_CONCAT函数。另外,为了和系统的函数名区别开来,也可以修改函数名称。如果是多个用户使用,也可以运行自己定制的脚本,然后创建同义词,这样多个用户都可以使用。

下面按照返回值的不同分为几种情况来订制不同的脚本。

① 无分隔符,返回CLOB类型

创建函数的脚本如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE OR REPLACE TYPE WM_CONCAT_IMPL_CLOB_NULL_LHR AUTHID CURRENT_USER AS OBJECT
(
  CURR_STR CLOB,
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                       P1   IN CLOB) RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                         RETURNVALUE OUT CLOB,
                                         FLAGS       IN NUMBER)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_CLOB_NULL_LHR)
    RETURN NUMBER
);
/
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL_CLOB_NULL_LHR IS
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR)
    RETURN NUMBER IS
  BEGIN
    SCTX := WM_CONCAT_IMPL_CLOB_NULL_LHR(NULL);
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                       P1   IN CLOB) RETURN NUMBER IS
  BEGIN
    IF (CURR_STR IS NOT NULL) THEN
      CURR_STR := CURR_STR ||  P1;
    ELSE
      CURR_STR := P1;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                         RETURNVALUE OUT CLOB,
                                         FLAGS       IN NUMBER) RETURN NUMBER IS
  BEGIN
    RETURNVALUE := CURR_STR;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_CLOB_NULL_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_CLOB_NULL_LHR)
    RETURN NUMBER IS
  BEGIN
    IF (SCTX2.CURR_STR IS NOT NULL) THEN
      SELF.CURR_STR := SELF.CURR_STR ||  SCTX2.CURR_STR;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
END;
/
CREATE OR REPLACE FUNCTION WM_CONCAT_CLOB_NULL_LHR(P1 VARCHAR2) RETURN CLOB
  AGGREGATE USING WM_CONCAT_IMPL_CLOB_NULL_LHR;
/
CREATE PUBLIC SYNONYM WM_CONCAT_CLOB_NULL_LHR FOR WM_CONCAT_CLOB_NULL_LHR;
GRANT EXECUTE ON WM_CONCAT_CLOB_NULL_LHR TO PUBLIC;

以上函数的测试示例如下所示,函数的返回值是无分隔符的CLOB,在PL/SQL中要使用TO_CHAR进行转换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SYS@lhrdb21> SELECT D.USER_ID FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
   USER_ID
----------
         0
         5
SYS@lhrdb21> SELECT WM_CONCAT_CLOB_NULL_LHR(D.USER_ID) FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
WM_CONCAT_CLOB_LHR_NULL(D.USER_ID)
--------------------------------------------------------------------------------
05

② 逗号分隔符,返回CLOB

创建函数的脚本如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE OR REPLACE TYPE WM_CONCAT_IMPL_CLOB_LHR AUTHID CURRENT_USER AS OBJECT
(
  CURR_STR CLOB,
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_CLOB_LHR)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_CLOB_LHR,
                                       P1   IN CLOB) RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_CLOB_LHR,
                                         RETURNVALUE OUT CLOB,
                                         FLAGS       IN NUMBER)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_CLOB_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_CLOB_LHR)
    RETURN NUMBER
);
/
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL_CLOB_LHR IS
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_CLOB_LHR)
    RETURN NUMBER IS
  BEGIN
    SCTX := WM_CONCAT_IMPL_CLOB_LHR(NULL);
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_CLOB_LHR,
                                       P1   IN CLOB) RETURN NUMBER IS
  BEGIN
    IF (CURR_STR IS NOT NULL) THEN
      CURR_STR := CURR_STR || ',' || P1;
    ELSE
      CURR_STR := P1;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_CLOB_LHR,
                                         RETURNVALUE OUT CLOB,
                                         FLAGS       IN NUMBER) RETURN NUMBER IS
  BEGIN
    RETURNVALUE := CURR_STR;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_CLOB_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_CLOB_LHR)
    RETURN NUMBER IS
  BEGIN
    IF (SCTX2.CURR_STR IS NOT NULL) THEN
      SELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
END;
/
CREATE OR REPLACE FUNCTION WM_CONCAT_CLOB_LHR(P1 VARCHAR2) RETURN CLOB
  AGGREGATE USING WM_CONCAT_IMPL_CLOB_LHR;
/
CREATE PUBLIC SYNONYM WM_CONCAT_CLOB_LHR FOR WM_CONCAT_CLOB_LHR;
GRANT EXECUTE ON WM_CONCAT_CLOB_LHR TO PUBLIC;

以上函数的测试示例如下所示,函数的返回值是以逗号为分隔符的CLOB,在PL/SQL中需要使用TO_CHAR进行转换:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SYS@lhrdb21> SELECT D.USER_ID FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
   USER_ID
----------
         0
         5
SYS@lhrdb21> SELECT WM_CONCAT_CLOB_LHR(D.USER_ID) FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
WM_CONCAT_LHR(D.USER_ID)
--------------------------------------------------------------------------------
0,5

③ 逗号分隔符,返回字符串类型

创建函数的脚本如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE OR REPLACE TYPE WM_CONCAT_IMPL_STRINGS_LHR AUTHID CURRENT_USER AS OBJECT
(
  CURR_STR VARCHAR2(32767),
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_STRINGS_LHR)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_STRINGS_LHR,
                                       P1   IN VARCHAR2) RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_STRINGS_LHR,
                                         RETURNVALUE OUT VARCHAR2,
                                         FLAGS       IN NUMBER)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_STRINGS_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_STRINGS_LHR)
    RETURN NUMBER
);
/
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL_STRINGS_LHR IS
  STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL_STRINGS_LHR)
    RETURN NUMBER IS
  BEGIN
    SCTX := WM_CONCAT_IMPL_STRINGS_LHR(NULL);
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL_STRINGS_LHR,
                                       P1   IN VARCHAR2) RETURN NUMBER IS
  BEGIN
    IF (CURR_STR IS NOT NULL) THEN
      CURR_STR := CURR_STR || ',' || P1;
    ELSE
      CURR_STR := P1;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF        IN WM_CONCAT_IMPL_STRINGS_LHR,
                                         RETURNVALUE OUT VARCHAR2,
                                         FLAGS       IN NUMBER) RETURN NUMBER IS
  BEGIN
    RETURNVALUE := CURR_STR;
    RETURN ODCICONST.SUCCESS;
  END;
  MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF  IN OUT WM_CONCAT_IMPL_STRINGS_LHR,
                                     SCTX2 IN WM_CONCAT_IMPL_STRINGS_LHR)
    RETURN NUMBER IS
  BEGIN
    IF (SCTX2.CURR_STR IS NOT NULL) THEN
      SELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR;
    END IF;
    RETURN ODCICONST.SUCCESS;
  END;
END;
/
CREATE OR REPLACE FUNCTION WM_CONCAT_STRINGS_LHR(P1 VARCHAR2) RETURN VARCHAR2
  AGGREGATE USING WM_CONCAT_IMPL_STRINGS_LHR;
/
CREATE PUBLIC SYNONYM WM_CONCAT_STRINGS_LHR FOR WM_CONCAT_STRINGS_LHR;
GRANT EXECUTE ON WM_CONCAT_STRINGS_LHR TO PUBLIC;

以上函数的测试示例如下所示,函数的返回值是以逗号为分隔符的字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SYS@lhrdb21> SELECT D.USER_ID FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
   USER_ID
----------
         0
         5
SYS@lhrdb21> SELECT WM_CONCAT_STRINGS_LHR(D.USER_ID) FROM DBA_USERS D WHERE D.USER_ID IN (0, 5);
WM_CONCAT_STRINGS_LHR(D.USER_ID)
---------------------------------------------------
0,5

其实,与WM_CONCAT相似的还有一个函数是LISTAGG。这是一个Oracle的列转行函数,使用示例如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WITH TEMP AS(
  SELECT 'China' NATION ,'Guangzhou' CITY FROM DUAL UNION ALL
  SELECT 'China' NATION ,'Shanghai' CITY FROM DUAL UNION ALL
  SELECT 'China' NATION ,'Beijing' CITY FROM DUAL UNION ALL
  SELECT 'USA' NATION ,'New York' CITY FROM DUAL UNION ALL
  SELECT 'USA' NATION ,'Bostom' CITY FROM DUAL UNION ALL
  SELECT 'USA' NATION ,'Bostom' CITY FROM DUAL UNION ALL
  SELECT 'Japan' NATION ,'Tokyo' CITY FROM DUAL
)
SELECT NATION,LISTAGG(CITY,',') WITHIN GROUP (ORDER BY CITY)
FROM TEMP
GROUP BY NATION;

输出结果如下所示:

对于LISTAGG函数,如果聚合的内容太多就会报“ORA-01489: result of string concatenation is too long”的错误,那么这个时候可以从业务的角度去修改SQL,也可以使用WM_CONCAT函数返回CLOB类型来解决这个问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
基于视频流传输 — 在线教育白板技术
大家好,我是来自学而思的赵文杰,现就职于学而思网校并担任架构师的工作,接下来我将为大家分享互动白板在在线教育上的应用。
LiveVideoStack
2021/09/01
1.9K0
从“线上互动”到“实时临场感”,走向实时互动技术新世代!丨XDC 2022
三星堆上新全国观众“云考古”,诗词大会 1000 人同屏开麦,故宫古文物 22 倍高清放大,近些年来,音视频领域高速发展,带来一场又一场视觉盛宴,背后离不开实时互动技术的助力。 新冠疫情加速了全球范围的数字化转型,在线上办公、活动和娱乐的实时互动场景越来越多。在线虚拟陪伴不再新奇,协同办公工具频繁使用,人们的生活方式、工作方式、娱乐方式,都潜移默化的发生了改变。 实时互动技术正实现从“在线”到“在场”的转变,推动互联网朝以“临场感”为特征的下一次变革。随着 5G、大数据、云计算等技术的深入交叉发展,以及元宇
崔庆才
2022/07/18
3.4K0
从“线上互动”到“实时临场感”,走向实时互动技术新世代!丨XDC 2022
互动协作白板与音视频实时同步技术实践
大家好,我是来自即构的陈晓聪,现在主要负责互动白板的技术研发工作。接下来我将为大家分享即构在互动白板的技术探索实践。
LiveVideoStack
2020/09/15
3.8K0
所见即所录,在云端轻松搞定终端屏幕内容录制
什么是「云端原生录制」 传统的云端录制只能录制纯净的直播流画面,并不能完整还原观众视角下的真实直播场景。实际的直播场景除了直播流外,还包括界面UI、聊天弹幕、白板笔记、连麦互动、礼物动效等各种内容,而这些内容是无法通过传统方案在云端拉取的。但在电竞赛事、在线教育、连麦PK等很多场景中,完整推流/录制这些终端屏幕内容又是客户的刚需,这导致他们不得不采用人工录制、插件辅助等实现困难且成本很高的妥协方案。 纯净直播流录制(左)与终端屏幕内容录制(右) 腾讯云音视频基于云直播和云渲染推出的「云端原生录制」方案,
腾讯云音视频
2023/06/05
8800
所见即所录,在云端轻松搞定终端屏幕内容录制
如何搭建低延时、交互式的在线教育平台?
http://scrmtech.gensee.com/webcast/site/vod/play-c04b32af4cdd4f2183d9b7089274e8b9
LiveVideoStack
2020/05/29
4.4K0
如何搭建低延时、交互式的在线教育平台?
音视频技术开发周刊 | 229
本次LiveVideoStackCon 2021 音视频技术大会 北京站邀请到了新浪微博视频平台架构师——黄阳全,他将为我们介绍微博视频处理系统的架构演进与云原生之路上的探索,为什么选择自建,以及如何实现基于原有基础服务的FAAS平台。为尝试云原生架构模式的开发者提供参考。
LiveVideoStack
2022/02/11
5430
音视频技术开发周刊 | 229
教育互动直播,11年技术演进之殇
各位下午好,我是CC视频的唐通,先简单介绍一下CC视频,CC视频成立于2005年,实际上做视频领域已经整整11年了,我们公司的目标和愿景主要是为企业提供场景化的视频解决方案,这里面“场景化”就比较关键了,可能是因为我们深入到一些垂直的领域,比如说教育、金融、互联网,今天我主要会聊一些教育方面的,比如说我们在教育方面一些代表的客户,大家都熟知的像新东方、华图,还有类似高顿这样一些客户。
LiveVideoStack
2021/09/02
1.4K0
教育互动直播,11年技术演进之殇
互动再升级,适配新课标,实时互动-教育版快速构建在线素养教育课堂
作为技术发展、教育变革的产物之一,在线教育可以跨越地理和时间的限制,孩子们无论身处何地,只要有网络连接,就可以接触到高质量的教育资源。这一模式不仅改变了知识的传播方式,为学生提供了前所未有的灵活性和可及性,也大幅降低了教学机构的运营成本。
腾讯云音视频
2025/01/17
2680
互动再升级,适配新课标,实时互动-教育版快速构建在线素养教育课堂
腾讯云低代码互动课堂助力企业快速搭建线上教育平台
随着互联网技术的不断迭代升级,各行各业的线上化和数字化已成为必然趋势。在线课堂作为线下教育培训的重要补充,也在这股浪潮中得到了迅速发展和普及。然而,教育的线上化并非易事,尤其对于中小机构而言,短时间内搭建出成熟的线上教育平台充满挑战。为解决这一问题,腾讯云推出了低代码互动课堂,是一款集成音视频连麦、互动白板和直播等多功能的产品,能够帮助您节省90%的开发工作。在教育、医疗、金融、电商和企业培训等领域,可快速搭建一对一教学、互动小班课、直播大班课和直播带货等多种互动直播业务场景。欢迎登录官网查看:实时互动教育版(原低代码互动课堂)
用户4347597
2024/02/27
3720
小班互动教学解决方案(上)
在线教育发展迅猛,各大教育机构如雨后春笋般涌现,尤其是在疫情“停课不停学”的大背景下。不管是学科教育、兴趣辅导,还是技能培训,都少不了小班互动教学。小班教学要求多种师生互动方式,互动时延低,响应速度快,彼此沟通顺畅,本篇针对以上需求以及结合在线教育的特点,提供以下方案(上篇为应用架构/场景篇,下篇为应用实践篇),该方案既可满足10万学生同时上课,也支持1v1、1v2、1vN等多种规格互动小班课堂。支持屏幕分享、课件分享、互动白板、消息互动等多种课堂应用功能,打造形式更加丰富的线上教学。方案支持课堂全程录制,课后点播回放,巩固学习成效。支持通过云直播使用标准协议播放,受众更广泛。
evannhuang
2020/11/01
9.8K2
小班互动教学解决方案(上)
在线培训、在线健身、在线学一切!行业新模式激发双赢新可能
与传统的线下模式相比,线上化能够带来更灵活优质的体验、更低成本的交付、更广范围的覆盖,但很多行业的线上化探索因为开发周期长、门槛高、功能繁复等原因,并不顺利。而腾讯云音视频多人会议组件(TUIRoomKit)这个数字化新工具,则让音乐教学、美术培训、健身团课、考证考研、教学研讨、讲座论坛、企业培训这些原先定位线下的生意,终于能够统统搬到线上。而且这个“搬家列表”还在持续壮大,越来越多的行业正在利用腾讯云音视频多人会议组件(TUIRoomKit)激发自身业务的双赢新可能。
腾讯云音视频
2024/12/19
1410
在线培训、在线健身、在线学一切!行业新模式激发双赢新可能
一键乘上AI风口,实时互动AI课堂助力在线教育体验倍增
在线教育打破了教育资源在时间、空间上的诸多限制,而AI课堂则进一步打破了人力这一核心制约,与传统教师相辅相成,解决了教师资源稀缺、重复性劳动、时间精力有限、人力成本高等问题。
腾讯云音视频
2024/11/25
4150
一键乘上AI风口,实时互动AI课堂助力在线教育体验倍增
一键乘上AI风口,实时互动AI课堂助力在线教育体验倍增
在当今这个多元化教育需求井喷的时代,传统教育模式已难以满足课堂上日益多样、个性、灵活的要求。而伴随着人工智能技术的成熟,将AI技术融入课堂,从而更好地理解并满足学生需求,成了教育模式突破现有瓶颈的新方向。从关注儿童成长的蜻蜓飞行队到深耕成人英语的阿卡索外教,不同年龄段、不同赛道的在线教育机构都开始尝试将AI能力接入自身应用中,以提升竞争力。
小腾资讯君
2024/11/27
3170
钉钉白板不走Miro老路
据“数字游民世界”网站统计,目前有 3500 万数字游民从工位中解脱,有 25 个国家为他们颁发“数字游民签证”,他们每年会在各地花费 7870 亿美元。而疫情以来,许多公司也接受了混合办公的雇佣形式,谷歌、Airbnb、Shopify 等公司已宣布,员工可以选择永久性的混合办公。
全网漫游指南
2023/04/18
9860
钉钉白板不走Miro老路
产品动态 | 3行代码20分钟,助力您快速上线互动课堂
导语 | 随着7月“双减政策”的落地,在线教育行业进入深度变革期,在学科辅导承压的同时,政策也给予了教育转型明确的建议,在教育部明确提出的7类转型建议中,素质教育、职业教育、教育出海最受到资本热捧,据相关机构测算,素质教育市场规模在2023年有望突破7000亿,职业教育有望突破5000亿。各大培训机构纷纷布局。 TRTC推出互动课堂aPaaS解决方案 腾讯云实时音视频TRTC团队基于21年来雄厚的实时音视频技术积累,基于“双减”后快速崛起的素质教育、职业教育,推出互动课堂低代码解决方案,方便客户低
腾讯云音视频
2021/11/15
9040
教育直播源码开发需要考虑的因素以及准备工作都有哪些?
在教育在线化的浪潮下,线上线下教育公司发展教育直播平台开发,形成以直播、录播和网校为主的三大产品类别,同时基于在线化与移动化的授课场景,系统厂商也会提供相应的辅助工具以提升机构在线化办学效率。不过,教育直播源码开发最终的发展目标就是尽可能将所有实用的教学功能有效整合在一起。
布谷安妮
2020/05/16
6890
教育直播源码开发需要考虑的因素以及准备工作都有哪些?
“双减政策”下|教育行业如何实现TRTC互动课堂aPAAS解决方案?
导语 | 随着7月“双减政策”的落地,在线教育行业进入深度变革期,在学科辅导承压的同时,政策也给予了教育转型明确的建议,在教育部明确提出的7类转型建议中,素质教育、职业教育、教育出海最受到资本热捧,据相关机构测算,素质教育市场规模在2023年有望突破7000亿,职业教育有望突破5000亿,各大培训机构纷纷布局转型。推荐教培易产品解决方案
TCS-F
2021/11/15
2.5K0
“双减政策”下|教育行业如何实现TRTC互动课堂aPAAS解决方案?
从用户采购行为看教育直播系统的功能发展重点
根据艾瑞咨询在前段时间发布的《2019年中国K12教育To B行业研究报告》显示,培训机构在使用在线授课系统、教育直播系统之类的软件时,认为最实用的功能是课程录制和回放,另外课堂师生互动、课件资料共享等面授时不具备的功能点也是比较重点关注的功能了,同时也存在着诸多问题,主要在于师生互动和双师配合程度够不够。接下来,我们将从用户对于教育直播系统的采购态度开始说起,来具体聊聊教育直播系统中最实用的功能和最大的几个问题。
万岳教育系统
2020/04/14
2.5K0
从用户采购行为看教育直播系统的功能发展重点
郭卓惺:互动课堂的搭建实例及相关领域应用
随着在线教育覆盖面的增加,互动课堂授课方式正在向多样化发展,为了适应新形式的发展,腾讯视频云推出了全平台覆盖的互动课堂解决方案。为客户打通了直播、实时音视频、点播、存储、白板、IM、AI等多个业务场景,提供了全方位的paas层能力。尤其是得益于小程序和H5的快捷性,互动课堂解决方案更是在需要快速体验课程的场景下具有独到优势。
腾讯云开发者社区技术沙龙
2018/06/28
6.3K1
郭卓惺:互动课堂的搭建实例及相关领域应用
教育直播系统知识点扫盲
简单来说,教学直播系统最初是以直播平台为开发点,加入在线授课、课程点播、网课售卖等功能的远程视频教学软件。随着深入开发,教学直播系统的功能不断完善,形式也更加轻便和简洁,逐渐从PC端走向了移动端。现如今,教学直播系统不仅广泛应用于学生教育,而且还能为各大企业提供职业培训,应用场景多种多样。
万岳教育系统
2020/04/10
1.6K0
教育直播系统知识点扫盲
推荐阅读
相关推荐
基于视频流传输 — 在线教育白板技术
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档