![](/img/trans.png)
[英]How to call an Oracle function of refcursor return type using sqlalchemy and python
[英]how can i call mysql function using sqlalchemy in python?
我正在尝试从 python 在 mysql 中调用 function 这是我使用 ZF3D386AADEEB6063DZ16E4DF52EZ 的代码
CREATE DEFINER=`root`@`localhost` FUNCTION `my_function`() RETURNS int
READS SQL DATA
DETERMINISTIC
BEGIN
insert into employeedata (select * from employee where joiningdate <'20160101');
RETURN 1;
END
engine=sqlalchemy.create_engine('mysql+pymysql://root:root@localhost:3306/sasft')
pd.read_sql_query("select my_function()", engine)
也尝试使用 MySQL 连接器。
function 是通过工作台而不是从 python 调用的。 它没有给我任何它正在执行的错误,但结果没有改变。
如果您只想运行 function,则不需要使用 Pandas SQL 接口。 您可以使用以下内容:
from sqlalchemy import text
with engine.connect() as connection:
result = connection.execute(text("SELECT my_function()"))
print(result)
参考: 了解自动提交
text()
然后将“强制”此自动提交。
另一种方法是使用具有显式autocommit
执行选项的上下文管理器:
with engine.connect().execution_options(autocommit=True) as connection:
connection.execute("SELECT my_function()")
要使用 SQLalchemy 连接而不是 Pandas API 来测试 MWE 示例,假设您想从表table_name
中读取 10 个项目:
with engine.connect() as connection:
rs = connection.execute("SELECT * FROM table_name LIMIT 10")
for row in rs:
print(row)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.