【问题标题】:Change schema, execute query and write output to file更改架构,执行查询并将输出写入文件
【发布时间】:2017-04-20 10:33:38
【问题描述】:

我想用 sys 用户连接到数据库。将架构更改为其他用户。执行查询并将结果写入文件。

我正在使用 oralce 托管数据访问。https://www.nuget.org/packages/Oracle.ManagedDataAccess/

我已经尝试了三种不同的方法。

1.) spool-> 不起作用,因为我没有执行 sqlplus 而是连接 managedDataAccess

2.) begin execute immediate'changeschema' execute immediate 'query' end -> 由于开始/结束,阅读器上没有输出

3.) 尝试改变连接 conn.ChangeDatabase(user);不适用于 managedDataAccess

这是我的连接字符串:

string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=" + host + ")(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=" + instance + ")));User Id = " + oracleUser + "; Password =" + oraclePassword;

我可以更改连接字符串中的架构吗

【问题讨论】:

  • 您使用的是哪个数据库?您标记了 mysql 和 oracle,不能两者兼而有之。请更正标签。
  • 已修复 :) 抱歉
  • 没问题,常见的错误。
  • 您是否指定了您希望以 DBA 身份连接的用户

标签: c# sql oracle oracle-manageddataaccess


【解决方案1】:

如果您以 SYS 身份连接,则无需更改架构,只需在 from 子句中引用架构即可,例如

select * 
from my_user.my_tab
;

【讨论】:

  • 感谢您的回答。我已经知道了,但这对我来说更像是一种解决方法而不是解决方案。我正在执行自定义查询并且不需要在查询中输入变量。
  • 你可以让 SYS 拥有你的 owner.table_name 的同义词。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 2014-03-24
  • 1970-01-01
  • 2012-03-09
相关资源
最近更新 更多