【发布时间】:2016-01-14 10:17:06
【问题描述】:
这是我的代码:
import urllib
import requests
from bs4 import *
from subprocess import Popen,PIPE
import os
connectString = 'SYSTEM/mediadot123'
def runSqlQuery(sqlCommand, connectString):
session = Popen(['sqlplus', '-S', connectString], stdin=PIPE, stdout=PIPE, stderr=PIPE)
session.stdin.write(sqlCommand)
return session.communicate()
session = Popen(['sqlplus','-S','hr/hr'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
stdout, stderr = session.communicate()
sqlCommand = "insert into food(title, recipe, image) values ('bla','bla','bla');"
queryResult, errorMessage = runSqlQuery(sqlCommand, connectString)
print queryResult
它给了我以下错误:
C:\Python27\python.exe C:/Users/Umer/PycharmProjects/DATACRAWLER/main.py
Traceback (most recent call last):
File "C:/Users/Umer/PycharmProjects/DATACRAWLER/main.py", line 38, in <module>
session = subprocess.Popen(['sqlplus','-S','hr/hr'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
【问题讨论】:
-
sqlplus 在你的 PATH 中吗?你试过用 sqlplus 的绝对路径替换
'sqlplus'吗? -
你能告诉我应该添加什么路径吗?
-
您的文件系统上的
sqlplus可执行文件在哪里?例如。如果是C:\Program Files\Oracle\sqlplus.exe,则添加C:\Program Files\Oracle` to your PATH. Easier yet, just replace'sqlplus'` 和'C:\Program Files\Oracle\sqlplus.exe' -
我只通过 cmd 使用 SQPLUS,我的 ORACLE 文件夹中没有可执行文件。另外,我在我的计算机上运行了相同的代码,但是当我在远程桌面上运行相同的代码时;它给出了这个错误。
-
我在两者上都使用 Oracle 11g 企业版,并且都是 x64
标签: python oracle subprocess sqlplus