通过在远程服务器上运行 pysqpark,我可以使用 jdbc 连接到另一台服务器上的 Oracle 数据库,但我运行的任何有效查询都会返回ORA-00903: invalid table name Error.
我可以使用cx_Oracle或从本地计算机连接到数据库pyodbc。当我从本地连接时,返回上述错误的那些查询运行没有问题。
我改变了在本地或远程运行的查询,但无论我运行什么类型的有效查询
ORACLE_JAR = "ojdbc7.jar"
JAR_LOC = os.path.join(os.environ["JARS_DIR"], ORACLE_JAR)
spark = SparkSession.builder \
.appName("GetData") \
.config("spark.jars", "local://" + JAR_LOC) \
.getOrCreate()
exadata_instances = ["xxx.yyy.zzz", "aaa.bbb.cc"]
db_host = "xxx.yyy.zzz"
user = 'username'
password = 'passW0rd'
driver = "oracle.jdbc.OracleDriver"
sid = "eee.fff.ggg"
address_string = ""
for exadata_instance in exadata_instances:
address_string += f"(ADDRESS=(PROTOCOL=TCP)(HOST={exadata_instance})(PORT=1521))"
tns = f"(DESCRIPTION= \
(ADDRESS_LIST= \
(LOAD_BALANCE=OFF) \
(FAILOVER=ON) \
{address_string}) \
(CONNECT_DATA=(SERVICE_NAME={sid})(SERVER=DEDICATED)))"
url …Run Code Online (Sandbox Code Playgroud)