主要原因是在VS code中更改后,导致编码更改
cmd之后,进入Oracle,输入sqlplus /nolog Enter
SQL> conn /as sysdba(为确保万一,这一步不能少,网上很多解决方案缺少这一步,导致下一步没有权限)
SQL>shutdown immediate(关闭数据库)
SQL>startup mount;(据说是以mount重启,原谅笔者也不太懂,也有解决方案直接使用startup,笔者没尝试过,尝试过的小伙伴也可以在评论区留言分享)
SQL>alter system enable restricted session;
SQL>alter system set job_queue_processes=0;
SQL>alter database open;
SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;(这里可能会报错:新字符集必须为旧字符集的超集。不用担心,将本句换成ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;主要作用是更改编码)
SQL> SHUTDOWN IMMEDIATE;(接着,关闭数据库服务)
SQL> STARTUP;(重启)
注意:在copy过程中,如果不小心在Oracle中按了Ctrl+C,终止Oracle程序,会发现上述所有代码都解决不了问题,不用慌,随便打开一个文件夹,右击右边的计算机(此电脑)->点击“管理”->点击“计算机管理(本地)”->双击“服务和应用程序”->双击“服务”->找到“OracleServerORACL”->重新启动(先停止,后启动),完成后,cmd,从本文第一步重新开始