首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用GCC或TOC填充Oracle数据库,有人知道这一点吗?

使用GCC或TOC填充Oracle数据库,有人知道这一点吗?
EN

Database Administration用户
提问于 2022-02-23 08:53:50
回答 1查看 63关注 0票数 0

在过去,我使用过Oracle数据库。

为了填充这些内容,我使用了命令,例如:

代码语言:javascript
运行
复制
Program.Object.Create, Field1="Value1", Field2="Value2", ...

该技术的名称称为"GCC“或"TOC”(取决于所使用的版本)。

我想使用这种技术(或类似的技术)来填充其他数据库(比如Server),因为目前我们正在使用SQL来填充这些数据库,比如:

代码语言:javascript
运行
复制
INSERT INTO Table1 (Field_1, Field_2, ..., Field_n) VALUES (Value_1, Value_2, ..., Value_n)

正如您所看到的,Field_iValue_i之间的链接并不是那么简单。

我不知道这种技术的名称,我甚至不知道这种技术是公开的还是内部写的。

如果这项技术是公开的,如果它可以用于其他数据库技术(比如SQL-server),谁能给我一个提示吗?

提前感谢

编辑:我是什么意思,不直截了当?

假设一个有十列的表,我想修改一些值。在SQL中,这将导致SQL更新查询,如:

代码语言:javascript
运行
复制
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (8, 9, 6, 2, 4, 3, 8, 5, 3, 1);
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (2, 6, 8, 1, 3, 8, 5, 3, 1, 5);
UPDATE Table1 SET Name, ID, Cause, SubCause, Feature, SubFeature, Call, SubCall, Type, SubType VALUES (9, 6, 5, 2, 4, 8, 6, 3, 2, 4);

为了知道哪些是这些语句中的子特性,我需要计算这些子特性在哪一列中存在。那似乎是第六次了。然后,我需要寻找第六个值,我看到的结果(3,8和8再次)。

在GCC/TOC技术中,这要简单得多(滚动后:- ):

代码语言:javascript
运行
复制
Program.Table1.Modify,Name="8", ID="9", Cause="6", SubCause="2", Feature="4", SubFeature="3", Call="8", SubCall="5", Type="3", SubType="1";
Program.Table1.Modify,Name="2", ID="6", Cause="8", SubCause="1", Feature="3", SubFeature="8", Call="5", SubCall="3", Type="1", SubType="5";
Program.Table1.Modify,Name="9", ID="6", Cause="5", SubCause="2", Feature="4", SubFeature="8", Call="6", SubCall="3", Type="2", SubType="4";
EN

回答 1

Database Administration用户

发布于 2022-02-23 14:10:47

本机T语言还允许通过SELECT语句插入/更新,而不是硬编码值。然后,您可以利用别名,以更好的可读性来模仿您在Oracle中的习惯。例如:

代码语言:javascript
运行
复制
INSERT INTO Table1 (Field_1, Field_2, Field_n)
SELECT Value_1 AS Field_1, Value_2 AS Field_2, Value_n AS Field_n;

或者我个人更倾向于格式化以提高可读性:

代码语言:javascript
运行
复制
INSERT INTO Table1 (Field_1, Field_2, Field_n)
SELECT 
    Value_1 AS Field_1, 
    Value_2 AS Field_2, 
    Value_n AS Field_n;

就更新而言,您提供的“不直接”示例是无效的语法,因此它不会在Server上工作。T中正确的语法是:

代码语言:javascript
运行
复制
UPDATE Table1 
SET 
    Name = 9, 
    ID = 6, 
    Cause = 5, 
    SubCause = 2, 
    Feature = 4, 
    SubFeature = 8, 
    Call = 6, 
    SubCall = 3, 
    Type = 2, 
    SubType = 4;

这与您在Oracle中熟悉的内容很相似。

另外,如果您只想更新记录的一个子集,例如已经使用ID = 6的记录,那么下面的示例将说明如何实现这一点:

代码语言:javascript
运行
复制
UPDATE Table1 
SET 
    Name = 9, 
    Cause = 5, 
    SubCause = 2, 
    Feature = 4, 
    SubFeature = 8, 
    Call = 6, 
    SubCall = 3, 
    Type = 2, 
    SubType = 4
WHERE ID = 6; -- Updates only the records whose ID already = 6
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/307861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档