问题描述
当我第一次搜索该异常时,有多个名称为object doesnot exist
的异常,但是它们都与数据库中使用的表无关。我需要根据两列design_id和step_name的where条件更新几列,应该更新列time_logged and eoh_buffer_factor
。我正在使用Flask-RestFul API提交整个内容。
我有一个Model对象,其中包含使用的表的列。
model_buffer_input_eoh.py
个文件:
import sqlalchemy as sa
from sqlalchemy import Float,DateTime,String,Integer
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class BufferInputEoh(Base):
__tablename__ = 'BUFFER_INPUT_EOH_TEST'
__table_args__ = {'quote': False,'extend_existing': True}
id = sa.Column(Integer,primary_key=True)
eoh_buffer_factor = sa.Column(Float)
time_logged = sa.Column(DateTime)
mfg_facility_id = sa.Column(String)
design_id = sa.Column(String)
step_name = sa.Column(String)
def __init__(self,eoh_buffer_factor,time_logged,mfg_facility_id,design_id,step_name):
self.eoh_buffer_factor = eoh_buffer_factor
self.time_logged = time_logged
self.mfg_facility_id = mfg_facility_id
self.design_id = design_id
self.step_name = step_name
def json(self):
return {'Updated record': '{},{},{}'.format(self.eoh_buffer_factor,self.time_logged,self.design_id,self.mfg_facility_id,self.step_name)}
我的API类:
从models.model_buffer_input_eoh导入BufferInputEoh
class UpdEohInputCapacity(Resource):
@classmethod
def post(self):
try:
engine = datasource.lookup('Fab_16')
connection = engine.connect()
Session = sessionmaker()
Session.configure(bind=engine)
session = Session()
dbname = datasource.get_db_name(data['fab'],'test')
row = session.query(BufferInputEoh).filter(row_data.design_id == DESIGN_ID).filter(row_data.step_name == STEP_NAME).first()
row.time_logged = TIME_LOGGED
row.eoh_buffer_factor = EOH_BUFFER_FACTOR
session.commit()
connection.close()
except Exception as e:
return {'message': 'Proc execution Failed with error => {error}'.format(error=e)},201
pass
我在数据库中有该表,并且试图与之运行查询的用户具有各种访问权限。但是,当我提交代码时,它将以Object 'BUFFER_INPUT_EOH_TEST' does not exist
完全例外:
(sNowflake.connector.errors.ProgrammingError) 002003 (42S02): 0196c513-05a1-8f94-0037-dd0286a14457: sql compilation error:\nObject 'BUFFER_INPUT_EOH_TEST' does not exist or not authorized.\n[sql: SELECT BUFFER_INPUT_EOH_TEST.id AS BUFFER_INPUT_EOH_TEST_id,BUFFER_INPUT_EOH_TEST.eoh_buffer_factor AS BUFFER_INPUT_EOH_TEST_eoh_buffer_factor,BUFFER_INPUT_EOH_TEST.time_logged AS BUFFER_INPUT_EOH_TEST_time_logged,BUFFER_INPUT_EOH_TEST.mfg_facility_id AS BUFFER_INPUT_EOH_TEST_mfg_facility_id,BUFFER_INPUT_EOH_TEST.design_id AS BUFFER_INPUT_EOH_TEST_design_id,BUFFER_INPUT_EOH_TEST.step_name AS BUFFER_INPUT_EOH_TEST_step_name \nFROM BUFFER_INPUT_EOH_TEST \nWHERE true\n LIMIT %(param_1)s]\n[parameters: {'param_1': 1}]\n(Background on this error at: http://sqlalche.me/e/13/f405)
我能够理解是什么导致了异常,因为表,数据库,访问都在那儿,但我仍然看到找不到与所用表有关的对象异常。 任何人都可以让我知道如何解决代码中的错误,以避免上面看到的异常吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)