Oracle存储过程代码如下: create procedure test_procedure( id_in in number, del_num out number ) as begin select count(*) into del_num from test t where t.id = id_in ; delete from test t where t.id = id_in ; commit; end; / python调用代码如下: from sqlalchemy import create_engine , text from sqlalchemy.orm import sessionmaker from configs import url # 创建数据库连接 engine = create_engine(url) # 创建会话 Session = sessionmaker(bind=engine) session = Session() # 调用存储过程 result = session.execute(text("CALL test_procedure(:param1, @out_param)"), {'param1': 3}) # 获取输出参数的值 out_param_value = session.execute("SELECT @out_param").scalar() # 打印输出参数的值 print(out_param_value) 执行python报错信息: DatabaseError: (cx_Oracle.DatabaseError) ORA-00936: missing expression 咨询了GPT给了如下的代码: from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy import outparam from configs import url # 创建数据库连接 engine = create_engine(url) # 创建会话 Session = sessionmaker(bind=engine) session = Session() # 调用存储过程 result = session.execute("BEGIN test_procedure(:alarmid, :del_num); END;", {'alarmid': 123, 'del_num': outparam.Parameter(int)}) # 获取输出参数的值 out_param_value = result.fetchone()['del_num'] # 打印输出参数的值 print(out_param_value) 结果报错: AttributeError: 'function' object has no attribute 'Parameter' 所以究竟怎么才能通过SQLAlchmey调用存储过程正常获取出参呢?
如题,本身from后的数据表是用子查询出来的,无法用某种方式进行order by,但是要取查询结果的最后一条应该怎么写?
如题,是PL/SQL?SQL Developer?Navicat?还是别的??哪个最好用啊??
不加ORDER BY t.CREATED_Date DESC查询需要2秒 加上后,查询需要15秒 如果单独查询一个rd_pro_inventory_temp表的话,加不加都是几毫米而已,这是为什么呀? SELECT t.LAST_UPD_BY, t.LAST_UPD_DATE, CASE WHEN t.ADD9 = 0 THEN det.item_code ELSE NULL END AS LOC_CODE, CASE WHEN t.ADD9 = 1 THEN det.item_code ELSE NULL END AS PRODUCT_CODE FROM rd_pro_inventory_temp t LEFT JOIN ( SELECT tem_desc, factory_code, GROUP_CONCAT(item_code) AS item_code FROM rd_pro_inventory_temp_det GROUP BY tem_desc, factory_code ) det ON det.tem_desc = t.TEM_DESC AND det.factory_code = t.FACTORY_CODE WHERE 1 = 1 AND t.active_flag = '1' AND t.FACTORY_CODE = '6640' ORDER BY t.CREATED_Date DESC
oracle如何获取去年同周二的日期 比如 今天是 2024-05-07 星期二 如何获取 去年 同周的星期二的日期(2023-05-09)? oracle如何获取去年同周二的日期 比如 今天是 2024-05-07 星期二 如何获取 去年 同周的星期二的日期(2023-05-09)?
RT,类小红薯APP,主要是图片资源,还有少部份视频资源,请教如何配置服务器或者类似的服务方案。
数据库字段类型为date,用jdbc查询,返回的结果会包含数据库字段的类型吗?然后用java.sql.date类型对象接收?
Oracle版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production jdbc驱动版本: ojdbc8@19.3.0.0
RT,大表,随时都有数据的读写
python 如何分批查询Oracle 就是比如数据库有几万数据第一次查询前100以此类推一直到查询到所有数据