shell脚本sqlplus更新数据库不生效

shell脚本sqlplus更新数据库不生效,第1张

是因为bug。shell脚本sqlplus更新数据库不生效是因为bug,bug本意是臭虫、缺陷、损坏、窃听器、小虫等意思。人们将在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug漏洞,如一些游戏中不完善的地方。

可以使用脚本来导出数据库的所有数据,然后去生成

点击完成就可以了,在低版本的服务器上先建立一个空的数据库,

最后把生成的数据库脚本执行。

UPDATE aps_tailor_instruction_detail_rec o, (SELECT atailorAssemblyLineId,atailorAssemblyLineCode,adeptId,cname tailorAssemblyLineName,bid productionSubPlanDetailId,aid productionSubPlanId,aplanNumber

FROM aps_production_sub_plan a,aps_production_sub_plan_detail b,md_tailor_assembly_line c WHERE aid=bproductionSubPlanId  AND atailorAssemblyLineId=cid 

AND bid=79751 AND afactoryId=46 AND adisabled=0) n

SET otailorAssemblyLineId = ntailorAssemblyLineId, otailorAssemblyLineCode = ntailorAssemblyLineCode,odeptId = ndeptId,otailorAssemblyLineName = ntailorAssemblyLineName,

oproductionSubPlanId=nproductionSubPlanId,osubPlanNumber=nplanNumber,oproductionSubPlanDetailId=nproductionSubPlanDetailId

WHERE instructionNumber IN ('CZ22010136','CZ22010137','CZ22010140') AND factoryId=46 AND disabled=0 AND size='170/92A'

AND oproductionSubPlanId=5572

一般的数据迁移是没有什么问题,但是要注意你的存储过程或函数中如果应用到了系统表或系统视图,要注意修改成对应在SQL2005下的schema名称(sys)!

还有xp_cmdshell在SQL2005中已经作为高级选项了,不能够直接使用。

要是原来的程序中用到了,在2005中使用xp_cmdshell前请先打开高级选想开关:

回答者:yzh4492767 - 助理 二级 5-24 09:31

其实就是附加数据库

由于有多个库,所以单个附加比较麻烦

使用存储过程sp_attach_db 说明如下

Transact-SQL 参考

sp_attach_db

将数据库附加到服务器。

语法

sp_attach_db [ @dbname = ] 'dbname'

, [ @filename1 = ] 'filename_n' [ ,16 ]

参数

[@dbname =] 'dbname'

要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

返回代码值

0(成功)或 1(失败)

结果集

注释

只应对以前使用显式 sp_detach_db *** 作从数据库服务器分离的数据库执行 sp_attach_db。如果必须指定多于 16 个文件,请使用带有 FOR ATTACH 子句的 Create DATABASE。

如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行 sp_removedbreplication 从数据库删除复制。

权限

只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行本过程。

示例

下面的示例将 pubs 中的两个文件附加到当前服务器。

EXEC sp_attach_db @dbname = N'pubs',

@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubsmdf',

@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_logldf'

请参见

Create DATABASE

sp_attach_single_file_db

sp_detach_db

sp_helpfile

sp_removedbreplication

系统存储过程

步骤:

1在要升级的SQL2000 Master库中执行如下语句

--EXEC sp_attach_db @dbname = N'pubs',

-- @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubsmdf',

-- @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_logldf'

--下面的语句是按上面的来做的

select 'exec sp_attach_db @dbname=N'''+name+''', @filename1=N'''+filename+''',@filename2=N'''+filename+''''

from sysdatabases

2将查询出来的内容全部复制,删除不需要附加的表及系统表

3修改或替换文件名和路径

5将改后的数据库脚本在SQL2005的master表里执行一下 附加就完了

6删除SQL2005中新表的数据库登录名添加新的登录名

附:

2005转到2000的步骤

1 生成for 2000版本的数据库脚本

2005 的manger studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

-- 右键要转到2000的库

-- 任务

-- 生成脚本

-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库

-- 勾选"为所选数据库中的所有对象编写脚本"

-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"

-- 其他选项根据需要设置

-- 最后把脚本保存到一个 sql 脚本文件

2 在2000中创建目标数据库

在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本以创建一个新的数据库

3 将数据从2005导到2000

2005 的manger studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

-- 右键要转到2000的库

-- 任务

-- 导出数据

-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库

-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库

-- 在"选择源表和源视图"中, 选择所有的表

-- 最后完成

回答者:wkghnn - 助理 二级 5-24 09:39

2005转到2000的步骤

1 生成for 2000版本的数据库脚本

2005 的manger studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

-- 右键要转到2000的库

-- 任务

-- 生成脚本

-- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库

-- 勾选"为所选数据库中的所有对象编写脚本"

-- 在接下来的"选择脚本选项"中, 找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"

-- 其他选项根据需要设置

-- 最后把脚本保存到一个 sql 脚本文件

2 在2000中创建目标数据库

在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本以创建一个新的数据库

3 将数据从2005导到2000

2005 的manger studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

-- 右键要转到2000的库

-- 任务

-- 导出数据

-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库

-- 在"选择目标"步骤中, 连接到 2000, 并选择步骤2新建的库

-- 在"选择源表和源视图"中, 选择所有的表

-- 最后完成

如果出现错误,那么看看错误所对应的语句是否正确,或者把脚本分几段执行调试

希望我的回答对你有帮助~~~~~~!!!~~~~~~

回答者:kinglin123 - 魔法师 四级 5-24 09:39

将数据从2005导到2000

2005 的manger studio

-- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例

-- 右键要转到2000的库

-- 任务

-- 导出数据

-- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库

先升将2010升级到2011版,再从2011升级到2013版,不可以跨版本升级。

以下为升级注意事项(基本适用于其他版本之间的升级 *** 作):

1、通达OA2011至2013版升级包只适合于2011版升级至2013版,其它版本请勿升级!已升级至2013版用户请下载2013版修正合集安装即可。2、升级后报表组件会升级至36版,查看36版升级内容。3、升级后会覆盖原有的MySQL数据库的用户表和权限表(mysql库)、MYOA\webroot\inc\oa_configphp文件,如之前有修改过默认的设置,请记录修改过的设置,升级后在新版数据库和文件的基础上再进行修改。4、升级前请务必备份数据库,即

“安装目录\data5”文件夹,以免升级失败造成损失,备份前请务必停止MySQL5_OA数据库服务。5、升级成功后,千万不要再以任何方式恢复2011版备份数据或程序文件。6、如升级失败,请及时与通达科技联系,请勿自行采取不恰当措施。OA内部版本号对应说明:31为2007第一版,32为2007第二版,33为2008版,34为2008增强版,35为2009版,36为2010版,50为2011版,51为2011增强版,60为2013版。

通达OA2011至2013版升级步骤:

1、使用admin账号登录OA,打开“系统管理-系统信息”模块,检查内部版本号,如果内部版本号是“50xxxxxx”或“51xxxxxx”,则可继续下一个升级步骤,如果不是请勿升级2013版,请联系通达OA技术支持人员获取帮助。2、安装2011增强版最新修正合集并执行,将2011版数据库结构更新至最新。(下载2011版最新修正合集)3、按照系统管理说明,停止MySQL5_OA服务,然后备份数据库,即

“安装目录\data5”文件夹,以免升级失败造成损失。4、退出通达应用服务控制中心和通达OA

MySQL管理工具程序(需从任务管理器中确认没有Monitorexe和MyAdminexe进程),否则可能会在安装升级程序过程中提示文件不能覆盖。5、安装升级包,安装过程中一定要指定安装路径为原2011版路径,从而进行覆盖升级。6、安装后,会自动进入服务配置,请重新指定合适端口号。7、升级时会覆盖MYOA\webroot\inc\oa_configphp,如果之前没有手动修改过该文件,则忽略该步骤,如果之前手动修改过该文件,需重新手动修改。8、IE浏览器打开OA页面后,会提示升级,点击“开始升级”进行升级,升级脚本执行的时间可能较长,如数据库较大,升级可能会持续20分钟或更长时间,请耐心等待。9、因增加了新功能,进入OA系统后,需由OA管理员调整角色权限,用户才能看到新的功能模块。10、2010版CRM模块数据升级需要进入[CRM系统-系统设置-CRM旧数据迁移]模块手动升级。11、升级后须重新注册软件,请在用户服务区获取2013版软件注册文件。12、安装后,请登录一次OA系统,确认升级后的数据正常,再安装2013版修正合集。

以上就是关于shell脚本sqlplus更新数据库不生效全部的内容,包括:shell脚本sqlplus更新数据库不生效、低版本数据库怎样附加高版本的数据库、数据库刷两个表数据的脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10201590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存