是因为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更新数据库不生效、低版本数据库怎样附加高版本的数据库、数据库刷两个表数据的脚本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)